BOOL CDialog::PreTranslateMessage(MSG* pMsg) { // for modeless processing (or modal) ASSERT(m_hWnd != NULL); // allow tooltip messages to be filtered if (CWnd::PreTranslateMessage(pMsg)) return TRUE; // don't translate dialog messages when in Shift+F1 help mode CFrameWnd* pFrameWnd = GetTopLevelFrame(); if (pFrameWnd != NULL && pFrameWnd->m_bHelpMode) return FALSE; // fix around for VK_ESCAPE in a multiline Edit that is on a Dialog // that doesn't have a cancel or the cancel is disabled. if (pMsg->message == WM_KEYDOWN && (pMsg->wParam == VK_ESCAPE || pMsg->wParam == VK_CANCEL) && (::GetWindowLong(pMsg->hwnd, GWL_STYLE) & ES_MULTILINE) && _AfxCompareClassName(pMsg->hwnd, _T("Edit"))) { HWND hItem = ::GetDlgItem(m_hWnd, IDCANCEL); if (hItem == NULL || ::IsWindowEnabled(hItem)) { SendMessage(WM_COMMAND, IDCANCEL, 0); return TRUE; } } // filter both messages to dialog and from children return PreTranslateInput(pMsg); }
BOOL CSAPrefsDialog::PreTranslateMessage(MSG* pMsg) { ASSERT(pMsg != NULL); ASSERT_VALID(this); ASSERT(m_hWnd != NULL); // Don't let CDialog process the Escape key. if ((pMsg->message == WM_KEYDOWN) && (pMsg->wParam == VK_ESCAPE)) { return TRUE; } if (CWnd::PreTranslateMessage(pMsg)) return TRUE; // don't translate dialog messages when // application is in help mode CFrameWnd* pFrameWnd = GetTopLevelFrame(); if (pFrameWnd != NULL && pFrameWnd->m_bHelpMode) return FALSE; // ensure the dialog messages will not // eat frame accelerators pFrameWnd = GetParentFrame(); while (pFrameWnd != NULL) { if (pFrameWnd->PreTranslateMessage(pMsg)) return TRUE; pFrameWnd = pFrameWnd->GetParentFrame(); } return PreTranslateInput(pMsg); }
BOOL CFormView::PreTranslateMessage(MSG* pMsg) { ASSERT(pMsg != NULL); ASSERT_VALID(this); ASSERT(m_hWnd != NULL); // allow tooltip messages to be filtered if (CView::PreTranslateMessage(pMsg)) return TRUE; // don't translate dialog messages when in Shift+F1 help mode CFrameWnd* pFrameWnd = GetTopLevelFrame(); if (pFrameWnd != NULL && pFrameWnd->m_bHelpMode) return FALSE; // since 'IsDialogMessage' will eat frame window accelerators, // we call all frame windows' PreTranslateMessage first pFrameWnd = GetParentFrame(); // start with first parent frame while (pFrameWnd != NULL) { // allow owner & frames to translate before IsDialogMessage does if (pFrameWnd->PreTranslateMessage(pMsg)) return TRUE; // try parent frames until there are no parent frames pFrameWnd = pFrameWnd->GetParentFrame(); } // don't call IsDialogMessage if form is empty if (::GetWindow(m_hWnd, GW_CHILD) == NULL) return FALSE; // filter both messages to dialog and from children return PreTranslateInput(pMsg); }
BOOL CSettingsDialog::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class ASSERT(pMsg != NULL); ASSERT_VALID(this); ASSERT(m_hWnd != NULL); // Don't let CDialog process the Escape key. if ((pMsg->message == WM_KEYDOWN) && (pMsg->wParam == VK_ESCAPE)) return TRUE; if (CWnd::PreTranslateMessage(pMsg)) return TRUE; // Don't translate dialog messages when // application is in help mode CFrameWnd* pFrameWnd = GetTopLevelFrame(); if (pFrameWnd != NULL && pFrameWnd->m_bHelpMode) return FALSE; // Ensure the dialog messages will not // eat frame accelerators pFrameWnd = GetParentFrame(); while (pFrameWnd != NULL) { if (pFrameWnd->PreTranslateMessage(pMsg)) return TRUE; pFrameWnd = pFrameWnd->GetParentFrame(); } return PreTranslateInput(pMsg); // return CDialog::PreTranslateMessage(pMsg); }
BOOL CControlBar::PreTranslateMessage(MSG* pMsg) { ASSERT_VALID(this); ASSERT(m_hWnd != NULL); // handle mouse messages for tooltip support if (m_dwStyle & (CBRS_FLYBY|CBRS_TOOLTIPS)) FilterToolTipMsg(pMsg->message, pMsg->pt); // don't translate dialog messages when in Shift+F1 help mode CFrameWnd* pFrameWnd = GetTopLevelFrame(); if (pFrameWnd != NULL && pFrameWnd->m_bHelpMode) return FALSE; // since 'IsDialogMessage' will eat frame window accelerators, // we call all frame windows' PreTranslateMessage first CWnd* pOwner = GetOwner(); // always use owner first while (pOwner != NULL) { // allow owner & frames to translate before IsDialogMessage does if (pOwner->PreTranslateMessage(pMsg)) return TRUE; // try parent frames until there are no parent frames pOwner = pOwner->GetParentFrame(); } // filter both messages to dialog and from children return PreTranslateInput(pMsg); }
BOOL RenOutFile::PreTranslateMessage(MSG* pMsg) { ASSERT(m_hWnd != NULL); // allow tooltip messages to be filtered if (CWnd::PreTranslateMessage(pMsg)) return TRUE; // filter both messages to dialog and from children PreTranslateInput(pMsg); return(TRUE); // Short out the CDialog handler }
BOOL CControlBar::PreTranslateMessage(MSG* pMsg) { ASSERT_VALID(this); ASSERT(m_hWnd != NULL); // allow tooltip messages to be filtered if (CWnd::PreTranslateMessage(pMsg)) return TRUE; UINT message = pMsg->message; CWnd* pOwner = GetOwner(); // handle CBRS_FLYBY style (status bar flyby help) if (((m_dwStyle & CBRS_FLYBY) || message == WM_LBUTTONDOWN || message == WM_LBUTTONUP) && ((message >= WM_MOUSEFIRST && message <= AFX_WM_MOUSELAST) || (message >= WM_NCMOUSEFIRST && message <= WM_NCMOUSELAST))) { AFX_MODULE_THREAD_STATE* pModuleThreadState = AfxGetModuleThreadState(); // gather information about current mouse position CPoint point = pMsg->pt; ScreenToClient(&point); TOOLINFO ti; memset(&ti, 0, sizeof(TOOLINFO)); ti.cbSize = sizeof(AFX_OLDTOOLINFO); INT_PTR nHit = OnToolHitTest(point, &ti); if (ti.lpszText != LPSTR_TEXTCALLBACK) free(ti.lpszText); BOOL bNotButton = message == WM_LBUTTONDOWN && (ti.uFlags & TTF_NOTBUTTON); if (message != WM_LBUTTONDOWN && GetKeyState(VK_LBUTTON) < 0) nHit = pModuleThreadState->m_nLastStatus; // update state of status bar if (nHit < 0 || bNotButton) { if (GetKeyState(VK_LBUTTON) >= 0 || bNotButton) { SetStatusText(static_cast<INT_PTR>(-1)); KillTimer(ID_TIMER_CHECK); } } else { if (message == WM_LBUTTONUP) { SetStatusText(static_cast<INT_PTR>(-1)); ResetTimer(ID_TIMER_CHECK, 200); } else { if ((m_nStateFlags & statusSet) || GetKeyState(VK_LBUTTON) < 0) SetStatusText(nHit); else if (nHit != pModuleThreadState->m_nLastStatus) ResetTimer(ID_TIMER_WAIT, 300); } } pModuleThreadState->m_nLastStatus = nHit; } // don't translate dialog messages when in Shift+F1 help mode CFrameWnd* pFrameWnd = GetTopLevelFrame(); if (pFrameWnd != NULL && pFrameWnd->m_bHelpMode) return FALSE; // since 'IsDialogMessage' will eat frame window accelerators, // we call all frame windows' PreTranslateMessage first while (pOwner != NULL) { // allow owner & frames to translate before IsDialogMessage does if (pOwner->PreTranslateMessage(pMsg)) return TRUE; // try parent frames until there are no parent frames pOwner = pOwner->GetParentFrame(); } // filter both messages to dialog and from children if (::IsWindow(m_hWnd)) return PreTranslateInput(pMsg); return FALSE; }