抱歉,但我的英语非常糟糕。
我正在用c写一个winapi程序,我遇到了问题。该程序有一个主窗口和NO DIALOG子窗口(控件)。控件直接连接到主窗口。当我将应用程序切换到另一个应用程序并再次返回时,焦点将设置为主窗口,而不是切换前拥有焦点的控件。
我的消息循环是:
while ((rGetMessage = GetMessage(&msg, NULL, 0, 0)) != 0 && rGetMessage != -1)
{
if(!IsDialogMessage(hwnd_principal, &msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
我的错误是什么?
我使用IsDialogMessage函数来处理各种键(如控件中的TAB键)。
答案 0 :(得分:0)
当您切换回应用程序时,Windows将默认将键盘焦点设置为其主窗口,而不管哪个窗口在停用时具有焦点。如果您想要做一些不同的事情,您需要处理WM_ACTIVATE
并使用SetFocus()
将焦点恢复到控件。