C ++アプリケーション用にGUIを実行しようとしていますが、キー押下イベントに問題があります。基本的に、ボタンをクリックしない限り(メインウィンドウはキーイベントを登録します)、すべてが正常に機能しますが、ボタンをクリックするとすぐにメインウィンドウはフォーカスを失い、キーイベントをキャプチャしなくなります。これはばかげた質問かもしれませんが、私はC++を初めて使用します。これは私が使用しているコードの一部です:
メインウィンドウの作成:
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 */
);
ボタンの1つを作成します。
CreateWindow(TEXT("button"), TEXT("Start"),
WS_VISIBLE | WS_CHILD,
x, y, width, height,
hwnd, (HMENU) 6, NULL, NULL);
また、ボタンをクリックするたびにイベントが発生することに気づきましたWM_KILLFOCUS
。そのため、これが焦点の問題だと思います。また、WM_KILLFOCUSイベントをキャプチャしてから、フォーカスを再度設定しようとしましSetActiveWindow
たが、プログラムがクラッシュしました。
どんな助けもいただければ幸いです:)