掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Delphi2009、Win7でImeMode制御が? (ID:40568)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
かなり無理矢理ですけど下みたいな感じかな。 TFormの宣言の前に追加してください。 TEdit = class(StdCtrls.TEdit) private FOldIMC: HIMC; FKanaMode: Boolean; procedure WMSetFocus(var Message: TWMSetFocus); message WM_SETFOCUS; procedure WMKillFocus(var Message: TWMKillFocus); message WM_KILLFOCUS; public destructor Destroy; override; end; destructor TEdit.Destroy; begin if FOldIMC <> 0 then ImmAssociateContext(Handle, FOldIMC); inherited; end; procedure TEdit.WMKillFocus(var Message: TWMKillFocus); begin inherited; if ImeMode=imDisable then begin if FOldIMC <> 0 then begin ImmAssociateContext(Handle, FOldIMC); FOldIMC := 0; if FKanaMode And ((GetKeyState(VK_KANA) And 1) = 0) then begin keybd_event(VK_KANA, 0, 0, 0); keybd_event(VK_KANA, 0, KEYEVENTF_KEYUP, 0); end; end; end; end; procedure TEdit.WMSetFocus(var Message: TWMSetFocus); begin inherited; if ImeMode = imDisable then begin FOldIMC := ImmAssociateContext(Handle, 0); FKanaMode := (GetKeyState(VK_KANA) And 1) = 1; if FKanaMode then begin keybd_event(VK_KANA, 0, 0, 0); keybd_event(VK_KANA, 0, KEYEVENTF_KEYUP, 0); end; end else begin if FOldIMC <> 0 then begin ImmAssociateContext(Handle, FOldIMC); FOldIMC := 0; end; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.