Russian Qt Forum

Компиляторы и платформы => Visual C++ => Тема начата: sergeant от Апрель 06, 2004, 17:23



Название: Можно убрать реакцию на нажатие esc?
Отправлено: sergeant от Апрель 06, 2004, 17:23
При создании диалога он реагирует на enter и esc, чего мне как раз и не надо. Причем обработчика этих нажатий в коде нет - можно ли как-нибудь всё это дело убрать?


Название: Можно убрать реакцию на нажатие esc?
Отправлено: Greyer от Апрель 07, 2004, 19:29
На своём диалоге ставишь кнопки (если их нет) с ID: IDOK, IDCANCEL и добавляешь ф-ции, обрабатывающие нажатия на эти кнопки. Ну а в этих ф-циях комментируешь дальнейшую обработку:
Код:
void CYourDlg::OnCancel() 
{
//CDialog::OnCancel();
}

void CYourDlg::OnOK()
{
//CDialog::OnOK();
}

А кнопки потом убрать можно  :D


Название: Можно убрать реакцию на нажатие esc?
Отправлено: KriG от Апрель 25, 2004, 21:39
Ставить кнопки совсем необязательно. Достаточно просто добавить в класс диалога функции:

void CYourDlg::OnBnClickedCancel()
{
   //Ничего не делать при нажатии ESC
}

void CYourDlg::OnBnClickedOk()
{
   //Ничего не делать при нажатии ENTER
}

void CMy10ppDlg::OnClose()
{
   //Если не добавить этой функции то крестик отказывается работать :(
   CDialog::OnClose();
   OnCancel();
}