MFC

PreTranslateMessage

곰돌이짱 2013. 11. 22. 11:32

BOOL CAnalysisFormView::PreTranslateMessage(MSG* pMsg)
{
  switch ( pMsg->message)
  {
  case  WM_LBUTTONDOWN: //TODO: better in OnLButtonUp(UINT nFlags, CPoint point)- WM_LBUTTONUP
    {
      CRect rectTabs;
      m_wndFolderTab.GetTabsRect( rectTabs );
      m_wndFolderTab.ClientToScreen( rectTabs );
      m_bFolderTabsClicked = rectTabs.PtInRect( pMsg->pt );
    }
    break;
  case  WM_KEYDOWN:
    {
      const BOOL bIsCtrlPressed = (0x8000 & GetKeyState(VK_CONTROL)) != 0;
      if (bIsCtrlPressed && (pMsg->wParam == VK_NEXT || pMsg->wParam == VK_PRIOR))
      {
         if (m_bFolderTabsClicked)
            return m_wndFolderTab.PreTranslateMessage(pMsg);
        return GetParent()->PreTranslateMessage(pMsg);
      }
    }
    break;
  default:
    break;
  }
    //return CFormView::PreTranslateMessage(pMsg);
    return __super::PreTranslateMessage( pMsg );
}