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

时间:2011-08-12 11:24:00

标签: winapi

抱歉,但我的英语非常糟糕。

我正在用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键)。

1 个答案:

答案 0 :(得分:0)

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