
WNDOWSXP + VC++2010Express + SDKです。VC++ExpressなのでMFCなどは使えません。
ウィンドウのフォーカスの取得方法について質問します。
メインウィンドウにコントロールを3つ貼り付けます。
エディットコントロール2つと、自分で作成したコントロールが1つです。
自分で作成したコントロールのウィンドウプロシージャは仮に↓こんなものだとします。
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
if(message==WM_KEYDOWN)
{
if(wParam=='A'){
MessageBox(NULL,_T("A"),_T("KEYDOWN"),NULL);
}
return 0;
}
return DefWindowProc(hWnd, message, wParam, lParam);
}
プログラムを起動し、エディットコントロールAをクリックすると
エディットコントロールAにフォーカスが移動します。
キーボードのAボタンを押下すると、エディットコントロールAに「a」と入力されます。
エディットコントロールB、自分で作成したコントロールは無反応です。
エディットコントロールBをクリックすると、エディットコントロールBにフォーカスが移動します。
キーボードのAボタンを押下すると、エディットコントロールBに「a」と入力されます。
エディットコントロールA、自分で作成したコントロールは無反応です。
次に、自分で作成したコントロールをクリックした場合、
フォーカスはエディットコントロールBにあります。キーイベントなども
エディットコントロールBのみが反応します。
ここで、自分で作成したコントロールをクリックした場合に
自分で作成したコントロールがフォーカスを取得し、
キーイベントなどを独占的に受け取れるようにしたいのですが、方法がわかりません。
どなたか方法をご存知の方がいらっしゃいましたら、ご教授いただけないでしょうか。
No.3
- 回答日時:
あ,DefWindowProc なのですね。
失礼いたしました。#1
すみません。WM_LBUTTONDOWN で SetFocus したら普通にできました。
私はバカでした。事故解決してしまったので回答を締め切ります。
No.1
- 回答日時:
自分で作成したコントロールとはどのようなものでしょうか?
例えば,static control をサブクラス化したものであれば,
もとの性質を受け継いでいるので,フォーカスを受け取れないはず。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- C言語・C++・C# ActiveXコントロールを.NETにインポートできない??? 2 2023/05/02 02:50
- その他(Microsoft Office) EXCELでバーコードを作成すると白くなってコードが見えません 1 2022/04/04 14:24
- Excel(エクセル) コントロールにリンクするセルが選択されない 3 2022/06/12 14:37
- Excel(エクセル) EXCEL ActiveX コマンドボタンで実行する前にいったんmsgBoxで確認を求めたい 1 2022/07/06 19:41
- 呼吸器・消化器・循環器の病気 心筋梗塞の発作って薬でコレステロールの値をコントロールしても起こりえますか うちの親の話で、体重は相 7 2022/12/27 20:20
- その他(悩み相談・人生相談) 質問 自分は強気にいつもマウンティングし、従わせたいし、優位にたちコントロールするくせ、こちらが強気 2 2023/06/24 09:26
- 中古パソコン USBキーボードを外すと、起動できなくなる 2 2023/03/25 14:57
- その他(コンピューター・テクノロジー) コントロール+Fキーについて 2 2022/10/03 16:59
- 超常現象・オカルト 明晰夢で思い通りに夢を操れる? 3 2022/07/01 17:37
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル・VBA CheckBoxのオブ...
-
エクセルVBAでオプションボタン...
-
チェックボックスをオンにした...
-
変数をコントロール型で使用す...
-
ExcelVBAでListViewが使用できない
-
Visual Basic 6.0 でPanelを使...
-
間違えて配置してしまったコン...
-
Toolbarボタンをフラットにした...
-
Excel VBA で Richtextboxを使...
-
VB.NET開発。ラジオボタンとコ...
-
LCD 1602ディスプレイの輝度調...
-
ユーザーフォームで動的(Me.Con...
-
エクセルVBAユーザーフォーム・...
-
C# ユーザコントロール内のボタ...
-
ActiveXコントロールはどこへい...
-
VB.NET 動的コントロールの存在...
-
TabStripコントロールの上にLab...
-
全てのオブジェクトのプロパテ...
-
複数のコマンドボタン(VBAで)...
-
EXCELでactivexコントロールを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELでactivexコントロールを...
-
エクセル・VBA CheckBoxのオブ...
-
カメラスクロールするのを動画...
-
エクセルVBAでオプションボタン...
-
チェックボックスをオンにした...
-
VBA ユーザーフォームの Keypre...
-
chr関数の呼び出しで「プロ...
-
'ckbl' コントロールは作成され...
-
ExcelVBAでListViewが使用できない
-
全てのオブジェクトのプロパテ...
-
vb.netで画面のコントロールId...
-
間違えて配置してしまったコン...
-
変数をコントロール型で使用す...
-
エクセル コントロールツール...
-
ユーザーフォームで動的(Me.Con...
-
OCXって何ですか?
-
C#で角が丸いテキストボックス
-
Groupboxの配下のコントロール...
-
Labelコントロールの(左右)余...
-
excel vbaでユーザーフォームに...
おすすめ情報