Не закрывать диалог по Escape
От:
Alexs
Дата: 13.07.01 02:53
Оценка:
Хочу сделать приложение на базе Dialog, но не хочу чтобы оно закрывалось при нажатии Escape, как этого добиться?
Re: Не закрывать диалог по Escape
От:
BigBob
Дата: 13.07.01 06:12
Оценка:
Здравствуйте Alexs, вы писали:
A>Хочу сделать приложение на базе Dialog, но не хочу чтобы оно закрывалось при нажатии Escape, как этого добиться?
С помощью класс-визарда нужно переопределить функцию OnCancel() и в ней закоментировать вызов CDialog::OnCancel(). После этого диалог не будет закрываться по нажатию клавиши Esc.
Re: Не закрывать диалог по Escape
Здравствуйте Alexs, вы писали:
A>Хочу сделать приложение на базе Dialog, но не хочу чтобы оно закрывалось при нажатии Escape, как этого добиться?
способ 1:
переопределить виртуальную функцию PreTranslateMessage у CDialog-a.
способ 2:
сабклассировать данный диалог с помощью Get/SetWindowLong( ...,GWL_WNDPROC,...)
Re: Не закрывать диалог по Escape
Здравствуйте Alexs, вы писали:
A>Хочу сделать приложение на базе Dialog, но не хочу чтобы оно закрывалось при нажатии Escape, как этого добиться?
Это делается так:
BOOL CWFileInfoUtilityDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message==WM_KEYDOWN)
if(pMsg->wParam==VK_ESCAPE)
return TRUE;
return CDialog::PreTranslateMessage(pMsg);
}
Re: Не закрывать диалог по Escape
От:
Hakob
Дата: 20.07.01 10:28
Оценка:
Здравствуйте Alexs, вы писали:
A>Хочу сделать приложение на базе Dialog, но не хочу чтобы оно закрывалось при нажатии Escape, как этого добиться?
Это делается так:
BOOL CYourApp::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message==WM_KEYDOWN)
if(pMsg->wParam==VK_ESCAPE)
return TRUE;
return CDialog::PreTranslateMessage(pMsg);
}
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить