ENTER и ESC в диалоговом окне
От: sir171  
Дата: 22.08.06 16:02
Оценка:
Подскажите, пожалуйста, как решить следующую проблему.

Сделал главное окно диалоговым:
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 или крестику.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.