実現したいこと
フォアグラウンドアプリのIMMの状態を取得して、そのあとの処理に使いたい。
【引用】
https://qiita.com/Yamine1San/items/65f564bd4c38e19f8d9f
とりあえず、このサンプルを動かしたいのです。
発生している問題・分からないこと
最初の「if」に「宣言が必要です」というエラーが出る
該当のソースコード
C++
1#include <imm.h> 2#include <windows.h> 3 4 5 6// フォアグラウンドアプリのハンドル取得 7HWND hActWin = GetForegroundWindow(); 8if (hActWin) 9{ 10 // フォアグラウンドアプリのIMEハンドルを取得 11 HWND hIMEWnd = ImmGetDefaultIMEWnd(hActWin); 12 if (hIMEWnd) 13 { 14 // IMEの状態取得 15 LRESULT imeStatus = SendMessageA(hIMEWnd, WM_IME_CONTROL, DFCS_SCROLLCOMBOBOX, 0); 16 17 // IMEがONだったらOFFにする 18 if (imeStatus) 19 { 20 // 0x006 は IMC_SETOPENSTATUS 21 // 第4引数を0でIMEをOFF(1でON) 22 SendMessageA(hIMEWnd, WM_IME_CONTROL, 0x006, 0); 23 } 24 } 25}
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
困ったことに、なんにも分からないままです。
補足
Windows 10 HOME
Virtual Studio Version 17.9.5
![guest](/img/icon/icnUserSample.jpg)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2024/03/28 01:48