掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
コンボボックスでEnterキーが押下されたか調べるには (ID:59774)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
よろしくおねがいします。 WindowsXP, eVC++3.0, WindowsCE, MFC, ダイアログベースで ハンディターミナルの開発をしています。 コンボボックスで、下記のようなデータがリストにあった場合、 01:バラ 02:ケース 03:キロ 1:リストから選択するのと、[01:バラ]が表示される。 2:"01"と入力すると[01:バラ]が、表示される。 というような、2通りで選択したいんです。 現在、PreTranslateMessageで、キーが押下された時に、 どこにフォーカスがあるか調べて、 それによって処理をしています。 エディットボックスならうまくいくのですが、 コンボボックスだとうまくいきません。 BOOL CTestDlg::PreTranslateMessage(MSG* pMsg) { int ret; switch (pMsg->message) { case WM_KEYDOWN: switch (pMsg->wParam) { case VK_RETURN: if (GetFocus() == GetDlgItem(IDC_DTP_NOUHIN)){ //日付時間 m_edit_tokcd.SetFocus(); return true; } if (GetFocus() == GetDlgItem(IDC_EDIT_TOKCD)){ //エディット tokcdCheck(); return true; } if (GetFocus() == GetDlgItem(IDC_EDIT_KUBUN)){ //エディット kubunCheck(); return true; } if (GetFocus() == GetDlgItem(IDC_COMBO_HANTANI)){ //コンボ hantaniCheck(); return true; } //MessageBox(_T("test"), _T("test"), MB_OK); return true; break; } } return CDialog::PreTranslateMessage(pMsg); } void CTestDlg::hantaniCheck() { CString check_hantani; int nIndex = 0; CComboBox* pmyComboBox1=(CComboBox*)GetDlgItem(IDC_COMBO_HANTANI); pmyComboBox1->GetWindowText(check_hantani); check_hantani += _T(":"); nIndex = pmyComboBox1->SelectString(0, check_hantani); } IDC_DTP_NOUHINだとフォーカスが移動してくれます。 IDC_EDIT_TOKCDだとtokcdCheck()が実行されます。 IDC_COMBO_HANTANIだとhantaniCheck()を実行してくれません。 コンボボックスにフォーカスがあるか 判定してくれてない感じです。 ちなみに、 //MessageBox(_T("test"), _T("test"), MB_OK);のコメントをはずして、 コンボボックスでEnterキーを押した場合、メッセージが表示されます。 コンボボックスは、なにか違うことがあるのでしょうか? ながながと書きましたが、よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.