Winapi 切换应用程序和焦点的问题

Winapi 切换应用程序和焦点的问题,winapi,Winapi,对不起,我的英语很差 我正在用c编写一个winapi程序,我遇到了一个问题。该程序有一个主窗口,没有对话框子窗口控件。这些控件直接连接到主窗口。当我将应用程序切换到另一个应用程序,然后再切换回来时,焦点设置为主窗口,而不是切换前拥有焦点的控件 我的消息循环是: while ((rGetMessage = GetMessage(&msg, NULL, 0, 0)) != 0 && rGetMessage != -1) { if(!IsDialogMessage(hw

对不起,我的英语很差

我正在用c编写一个winapi程序,我遇到了一个问题。该程序有一个主窗口,没有对话框子窗口控件。这些控件直接连接到主窗口。当我将应用程序切换到另一个应用程序,然后再切换回来时,焦点设置为主窗口,而不是切换前拥有焦点的控件

我的消息循环是:

while ((rGetMessage = GetMessage(&msg, NULL, 0, 0)) != 0 && rGetMessage != -1)
{
    if(!IsDialogMessage(hwnd_principal, &msg))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
}
我的错误是什么


我使用IsDialogMessage功能,使各种键可以像控件中的TAB键一样工作。

当您切换回应用程序时,Windows默认情况下会将键盘焦点设置为其主窗口,而不管在停用时哪个窗口具有焦点。如果您想做一些不同的事情,您需要处理并使用它将焦点恢复到控件。

如果没有对话框,为什么要调用IsDialogMessage?从提供的信息来看,这是不可用的。