掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
日本語入力モード時のOnChangeをするには? (ID:39708)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
WM_IME_COMPOSITION でIME入力の変更はわかるっぽいのでその時にIMEの変換文字列を取得したら良いかなと。 一応下のコードで変換中の文字列を取得出来ますけど、メモに入力した文字も含めて取得する場合はもう一工夫いりますかね。 最後に追加だけなら楽ですけど。 procedure TForm1.FormCreate(Sender: TObject); begin FMemoWndproc := Memo1.WindowProc; Memo1.WindowProc := MemoWndProc; end; procedure TForm1.MemoWndProc(var Message: TMessage); var hImc: THandle; Buf: PByte; begin if (Message.Msg = WM_IME_COMPOSITION) And ((Message.LParam And GCS_COMPSTR) = GCS_COMPSTR) then begin hImc := ImmGetContext(Memo1.Handle); Buf := GetMemory(1024); ImmGetCompositionString(hImc, GCS_COMPSTR, Buf, 1024); Label1.Caption := String(Buf); FreeMem(Buf); ImmReleaseContext(Memo1.Handle, hImc); end; FMemoWndproc(Message); end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.