Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > MFC, OnKeyDown


Автор: JTV 3.6.2012, 13:19
нужно нажать клавишу и по идее должно появиться окошко с strnChar, strnRepCnt, strnFlags .....НО там, видимо, ошибка....ничего не происходит...помогите исправить, что не так?
вот код в методе
Код

void CMy078786Dlg::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)

{
    
    char strnChar[10];
    char strnRepCnt[10];
    char strnFlags[10];
    itoa(nChar, strnChar, 10);
    itoa(nRepCnt, strnRepCnt,10);
    itoa(nFlags, strnFlags, 10);
    CString strKeyPressed=(CString)"You pressed the key: "+
    "\n"+"nChar="+ strnChar+"\n"+"nReptCnt="+strnRepCnt+"\n"+"nFlags="+strnFlags;
    MessageBox(strKeyPressed); 
 
    CDialogEx::OnKeyDown(nChar, nRepCnt, nFlags);
}


Автор: Dem_max 3.6.2012, 15:12
тебе нужно создать функцию в своем классе, так как в базовом она виртуальная.
Код

BOOL CgDlg::PreTranslateMessage(MSG* pMsg)
{
   if(pMsg->message == WM_KEYDOWN   )  
   {
      if(pMsg->wParam == VK_DOWN)
      {
         ...
      }
      else if(pMsg->wParam == ...)
      {
         ...                      
      }
      ...
      else
      {
         ...                   
      }
   }

   return CDialog::PreTranslateMessage(pMsg);  
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)