Отлов акселераторов типа Ctrl+A
От: g0blin  
Дата: 29.11.03 23:24
Оценка:
Вот как я решил данную проблему :

BOOL CUOLoopPlusDlg::PreTranslateMessage(MSG* pMsg)
{
static bool bCtrl = false;

if (pMsg->wParam == VK_CONTROL && pMsg->message == WM_KEYDOWN)
bCtrl = true;
if (pMsg->wParam == VK_CONTROL && pMsg->message == WM_KEYUP)
bCtrl = false;

if (pMsg->message == WM_KEYDOWN)
{
if (pMsg->wParam == 0x41 && bCtrl)
{
return ::TranslateAccelerator(m_hWnd, m_Accel, pMsg);
}
}
return CDialog::PreTranslateMessage(pMsg);
}

Есть ли более оптимальный способ так как не нравится использование статических флагов... да и интересно в принципе....
WBR g0blin [RSDN@Home 1.1.2 beta 1][OD.UA.GH]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.