C++アプリケーションでGUIを実行しようとしていますが、キープレスイベントで問題が発生しています。基本的に、すべてのボタンをクリックしない限り(メインウィンドウはキーイベントを登録します)、すべてが正常に機能しますが、ボタンをクリックするとメインウィンドウがフォーカスを失い、キーイベントはキャプチャされなくなります。これは愚かな質問かもしれませんが、私はC++にとって非常に新しいです。これは、私が使用していたコードの一部です:私はまた、私は上をクリックしたときに気づいている子ボタンが押されたときにC++ウィンドウがフォーカスを失う
CreateWindow(TEXT("button"), TEXT("Start"),
WS_VISIBLE | WS_CHILD,
x, y, width, height,
hwnd, (HMENU) 6, NULL, NULL);
:メインウィンドウの
作成:ボタンのいずれかの
hwnd = CreateWindowEx (
0, /* Extended possibilites for variation */
szClassName, /* Classname */
"Application Name", /* Title Text */
WS_OVERLAPPEDWINDOW, /* default window */
CW_USEDEFAULT, /* Windows decides the position */
CW_USEDEFAULT, /* where the window ends up on the screen */
540, /* The programs width */
250, /* and height in pixels */
HWND_DESKTOP, /* The window is a child-window to desktop */
NULL, /* No menu */
hThisInstance, /* Program Instance handler */
NULL /* No Window Creation data */
);
の作成をボタンを押すと、WM_KILLFOCUS
イベントが発生します。これがフォーカスの問題だと私は思っています。私もWM_KILLFOCUSイベントをキャプチャしようとし、SetActiveWindow
で再びフォーカスを設定しましたが、それは私のプログラムをクラッシュさせました。
任意の助けいただければ幸い:)
ボタンはメインウィンドウの一部で、誰がフォーカスを得ていますか?または、ボタンを使用してダイアログを作成していますか?ダイアログのボタンを押すと、ダイアログにフォーカスが移りますか? – PlasmaHH
私はちょうどボタンが付いた1つのメインウィンドウを持っています。私は提供されたコードでウィンドウとボタンを作成しますが、私はダイアログを作成しません。ボタンがクリックされるとボタンにフォーカスが当たっていると仮定しています。 – npinti
私はこれを理解できません:(HMENU)6なぜ必要ですか? –