Я добавил всплывающее меню в свое приложение, и оно активируется с помощью следующего кода:
HMENU contextMenu;
int CALLBACK WinMain(...)
{
HMENU hContext = LoadMenu(GetModuleHandle(NULL), MAKEINTRESOURCE(IDR_CONTEXT_MENU));
contextMenu = GetSubMenu(hContext, 0);
}
case WM_RBUTTONDOWN:
{
POINT pt;
pt.x = GET_X_LPARAM(lParam);
pt.y = GET_Y_LPARAM(lParam);
ClientToScreen(hWndSDL, &pt);
SetForegroundWindow(hWndSDL);
TrackPopupMenu(contextMenu, TPM_LEFTALIGN | TPM_LEFTBUTTON, pt.x, pt.y, 0, hWndSDL, NULL);
break;
}
Если у меня появилось всплывающее меню, а затем щелкните строку заголовка окна, оно исчезнет,но окно по-прежнему не будет отвечать на любые щелчки за пределами клиентской области окна.
Я установил KEYUP даже для буквы на клавиатуре, чтобы вызвать ReleaseCapture (), и разрешает не-клиентскую областьокно, чтобы начать отвечать снова.Но это поведение должно быть автоматическим, когда меню закрывается, не так ли?
У кого-нибудь есть идеи?
спасибо