Подскажите плиз — как можно, особо не извращаясь,
отловить нажатие ESC и ENTER, чтоб не завершать по ним прогу?
Под особым извращением я понимаю установку хука
Посредством DefWindowProc, OnSysCommand и т.д. — не получается
(может я не так что-то делаю ?:
LRESULT CArchiveServerDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
if (message == WM_SYSKEYDOWN) { // или message == WM_KEYDOWN
Здравствуйте, lexer_lx, Вы писали:
LL>Подскажите плиз — как можно, особо не извращаясь, LL>отловить нажатие ESC и ENTER, чтоб не завершать по ним прогу? LL>Под особым извращением я понимаю установку хука LL>Посредством DefWindowProc, OnSysCommand и т.д. — не получается LL>(может я не так что-то делаю ?: LL> LRESULT CArchiveServerDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) LL> { LL> if (message == WM_SYSKEYDOWN) { // или message == WM_KEYDOWN
LL> }
LL> return CDialog::DefWindowProc(message, wParam, lParam); LL> } LL>)
Если у тебя, как ты пишешь в теме, MFC диалог, то достаточно переопределить методы OnOk и OnCancel и в не вызывать методы родителя (CDialog)
Здравствуйте, Дмитрий Наумов, Вы писали:
ДН>Здравствуйте, lexer_lx, Вы писали:
LL>>Подскажите плиз — как можно, особо не извращаясь, LL>>отловить нажатие ESC и ENTER, чтоб не завершать по ним прогу? LL>>Под особым извращением я понимаю установку хука LL>>Посредством DefWindowProc, OnSysCommand и т.д. — не получается LL>>(может я не так что-то делаю ?: LL>> LRESULT CArchiveServerDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) LL>> { LL>> if (message == WM_SYSKEYDOWN) { // или message == WM_KEYDOWN
LL>> }
LL>> return CDialog::DefWindowProc(message, wParam, lParam); LL>> } LL>>)
ДН>Если у тебя, как ты пишешь в теме, MFC диалог, то достаточно переопределить методы OnOk и OnCancel и в не вызывать методы родителя (CDialog)
Уважаемый Дмитрий!
Приношу извинения за не совсем точную формулировку вопроса.
Мне нужно, чтобы диалог не закрывался по ESC, но чтоб его можно было закрыть, нажав на крестик!!!
Если убрать OnCancel, то приложение можно будет закрыть только exit'ом.
В принципе, я уже сделал посредством хука, но все таки это изврат
Здравствуйте, Odi$$ey, Вы писали:
OE>Здравствуйте, lexer_lx, Вы писали:
_>>Подскажите плиз — как можно, особо не извращаясь, _>>отловить нажатие ESC и ENTER, чтоб не завершать по ним прогу?
OE>добавить обработчики OnOK и OnCancel и убрать из них вызов CDialog::OnOK() и CDialog::OnCancel() соответственно
Уважаемый Алексей!
Приношу извинения за неполноценную формулировку вопроса.
Мне надо чтоб осталась реакция на нажатие крестика в заголовке окна!
Ведь ее не будет если убрать OnCancel.
В принципе я уже сделал хук, все прекрасно работает — но это изврат
Нет ли более элегантного решения ?