BOOL CComboBoxTest::PreTranslateMessage(MSG* pMsg) { char *lpClassName = new char[MAX_PATH]; CString cName; CEdit *lpEdit = NULL; if(pMsg->message == WM_KEYDOWN){ ←1 CWnd *cWnd = GetFocus(); ←2 GetClassName(pMsg->hwnd,lpClassName ,MAX_PATH); ←┐ cName = CString(lpClassName); │ if((cName == "Edit") && (cWnd->GetParent() == this)){ 3 //コンボボックスのエディットのポインタを取得 │ lpEdit = (CEdit*)cWnd; │ } ←┘ switch( pMsg->wParam ) { case VK_ESCAPE: ・・・・処理・・・ break; case VK_RETURN: ・・・・処理・・・ break; ・・・・いろんなケース・・・ default: break; } } delete lpClassName; return CComboBox::PreTranslateMessage(pMsg); } |