Win32: диалоговое окно панели инструментов, кажется, никогда не фокусируется и заставляет главное окно работать медленно!
И я понял, что это был мой цикл сообщений:
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) {
// Doing required stuff here...
while (GetMessage(&Msg, hWnd, 0, 0) > 0) {
// Processing messages here...
}
}
Фактически, этот цикл сообщений работает нормально, пока у меня нет немодального диалога, так как он прекрасно работает с модальными диалогами, поскольку они обрабатывают свой собственный цикл сообщений. Мой немодальный диалог работал безупречно, когда я заменил экземпляр hWnd
на NULL
. Я просто не вижу разницы, за исключением того, что кажется, что я получаю сообщения не для одного конкретного окна.
Может кто-нибудь объяснить, что делает этот цикл сообщений некорректным?
Как этот:
while (GetMessage(&Msg, NULL, 0, 0) > 0) {
// Processing messages here...
}
работает без нареканий!