Не закрывать диалог по 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
От: Varchev ILYA Nickolaevich  
Дата: 13.07.01 14:06
Оценка:
Здравствуйте Alexs, вы писали:

A>Хочу сделать приложение на базе Dialog, но не хочу чтобы оно закрывалось при нажатии Escape, как этого добиться?


способ 1:
переопределить виртуальную функцию PreTranslateMessage у CDialog-a.

способ 2:
сабклассировать данный диалог с помощью Get/SetWindowLong( ...,GWL_WNDPROC,...)
Re: Не закрывать диалог по Escape
От: Hakob  
Дата: 20.07.01 10:28
Оценка: 1 (1)
Здравствуйте 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);
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.