我正在尝试为 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 */
);
创建按钮之一:
CreateWindow(TEXT("button"), TEXT("Start"),
WS_VISIBLE | WS_CHILD,
x, y, width, height,
hwnd, (HMENU) 6, NULL, NULL);
我还注意到,每当我单击一个按钮时,WM_KILLFOCUS
都会触发该事件,这就是为什么我认为这是一个焦点问题。我也尝试过捕获 WM_KILLFOCUS 事件,然后再次设置焦点,SetActiveWindow
但这会使我的程序崩溃。
任何帮助,将不胜感激 :)