Подскажите, пожалуйста, как решить следующую проблему.
Сделал главное окно диалоговым:
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAINWINDOW), NULL, MainWindowDlgProc);
return 0;
}
Как сделать так, чтобы по нажатию ENTER или ESC диалоговое окно не закрывалось?
В диалоговой процедуре MainWindowDlgProc() WM_KEYDOWN проходит для большинства клавиш, но не для ENTER и ESC. Насколько я понимаю их обрабатывает встроенная в виндовскую библиотеку функция dialog box manager (см. MSDN : Dialog Box Keyboard Interface) и переводит их в WM_COMMAND (IDOK или IDCANCEL). Поэтому внутри MainWindowDlgProc() нажатие на ENTER или ESC отловить нельзя. Где и как это можно сделать?
Хотелось бы, чтобы окно закрывалось только по Alt+F4 или крестику.