またまた質問です
ComboBoxでWM_KEYDOWNを取得する事は出来ますでしょうか?
サブクラス化して試してみたのですが、どうしてもWM_KEYDOWNとかWM_KEYUPとかが取れません。
どなたかアドバイスお願いしますです
ComboBoxでのkeydown
> ComboBoxで文字入力可能なようになっているので、EditBoxと同じメッセージが拾えるかと思うのですが。
ComboBoxは複合コントロールなのでそれ自体をサブクラス化しても、
子ウィンドウであるEditやListBoxのメッセージを取得することは出来ません。
なので、適当なときに
Dim hComboEdit As HWND
hComboEdit = GetWindow(GetDlgItem(hMainWnd, ComboBox1), GW_CHILD)
などと、子ウィンドウのハンドルを取得し、そのハンドルに対してサブクラス化してください。
但し、ComboBoxのスタイルにより子ウィンドウが存在しなかったり
ListBoxのハンドルを取得できるタイミングが限られるので注意してください。
ComboBoxは複合コントロールなのでそれ自体をサブクラス化しても、
子ウィンドウであるEditやListBoxのメッセージを取得することは出来ません。
なので、適当なときに
Dim hComboEdit As HWND
hComboEdit = GetWindow(GetDlgItem(hMainWnd, ComboBox1), GW_CHILD)
などと、子ウィンドウのハンドルを取得し、そのハンドルに対してサブクラス化してください。
但し、ComboBoxのスタイルにより子ウィンドウが存在しなかったり
ListBoxのハンドルを取得できるタイミングが限られるので注意してください。