Моя проблема в том, что я пытаюсь создать приложение Opengl / Win32 и не могу открыть диалоговое окно. Он буквально мигает, как будто кто-то нажал кнопку отмены на нем прямо при открытии.
Я просмотрел Google и нашел несколько других с этой проблемой, но ни одно из опубликованных ими решений не помогло мне, поэтому я обращаюсь к сообществу StackOverflow!
Изначально я написал код для процедуры диалога ...
LRESULT CALLBACK LoginDlgProc(HWND hWndDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
{
ShowWindow(hWndDlg, SW_SHOW); // These were added to get the window to show up
UpdateWindow(hWndDlg); // even if the chance was small.
switch(Msg)
{
case WM_INITDIALOG:
return true;
case WM_COMMAND:
switch(wParam)
{
case IDOK:
EndDialog(hWndDlg, 0);
return TRUE;
}
break;
}
return FALSE;
}
Затем я написал реальный код для отображения окна.
void DisplayLoginBox()
{
LoginDlgHwnd = NULL;
LoginDlgHwnd = (HWND)DialogBox(GetModuleHandle(NULL),
MAKEINTRESOURCE(LOGIN_DIALOG),
app.GetHandle(),
reinterpret_cast<DLGPROC>(LoginDlgProc)
);
if(LoginDlgHwnd == NULL)
MessageBox(NULL, NULL, NULL, MB_OK);
}
app.GetHandle () возвращает hwnd основной программы. Эта функция работает правильно. и LoginDlgHwnd является глобальной переменной.
Фактическое диалоговое окно создано и включено правильно. Есть ли у вас какие-либо идеи?
-Celestialkey