IME をキル!
(1999/04/17 [土])
Windows でプログラムを作成していると、ある種のウィンドウでは IME を On にできなくしたくなります。例えば、WS_EX_TOPMOST のようなスタイルを持つウィンドウや、全画面を占有してしまうようなアプリケーションです。これらの多くは IME をほとんど必要とせず、むしろ偶然か何かで On になっても、ただ不愉快になるだけです。そこでそれらの Window では何とか IME を On にできなくしたくなるわけです。というわけで、そのようなときには次のコードが役に立つでしょう。
//IME 有効化/無効化関数 //BOOL WINAPI ImeEnable(HWND hwnd, BOOL fEnable) //引数: hwnd: 対象となるウィンドウ // fEnable: TRUE:IME を有効にする FALSE:無効にする //戻値: 以前の状態。TRUE:IME は有効だった FALSE:IME は無効だった //注意: このコード断片は自由に使ってよいです BOOL WINAPI ImeEnable(HWND hwnd, BOOL fEnable) { static HMODULE hwinnls; static BOOL (WINAPI *WINNLSEnableIME)(HWND,BOOL); if(hwinnls == NULL){ hwinnls = (HMODULE)LoadLibrary("WINNLS32.DLL"); WINNLSEnableIME = GetProcAddress(hwinnls, "WINNLS32EnableIME"); } return WINNLSEnableIME ? WINNLSEnableIME(hwnd, fEnable): TRUE; } |
by seclan