窗口处于非活动状态时没有加速器

时间:2015-04-10 20:40:58

标签: c winapi

我有两个窗口,都是用WS_OVERLAPPEDWINDOW样式创建的。第一个窗口是在WinMain中创建的,其中CreateWindowEx()的hwndParent设置为0,第二个窗口在WM_CREATE的第一个窗口的WndProc中创建,hwndParent设置为第一个窗口的句柄。当我按下Ctrl + G时,会弹出一个标题为Goto的无模式对话框。我希望它只在第一个窗口(所有者)处于活动状态时弹出。即使第二个窗口(拥有的窗口)处于活动状态且所有者处于非活动状态,也会立即弹出。我不希望这样。例如,如果打开记事本,然后打开“替换”对话框,然后按Ctrl + G,则不会弹出“转到”对话框。仅当主记事本窗口处于活动状态时,才会弹出记事本中的Goto对话框。我想要那样。

我认为密钥在消息循环中,但我无法正确。这就是我现在拥有的。我只是把消息循环

while(GetMessage(&msg, 0, 0, 0) > 0)
{
    if(!TranslateAccelerator(hwnd, hAccel, &msg))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
}

0 个答案:

没有答案
相关问题