• 締切済み

コンボボックスについて

コンボボックスのドロップダウンとドロップダウンリストについて質問させてください。 現在eMbedded Visual C++ 4.0で開発を行っております。 キー処理を独自で行う為に、ディスパッチ前メッセージPreTranslateMessage()にてGetFocus()を行い、 コントロールIDテーブルのどのコントロールにフォーカスが当たっているかを判定しています。 処理は以下のようにしています。 // 現在のフォーカスインデックスを取得 int CKeyEventChange::GetFocusIndx(CWnd* pWnd, LONG* tblCtrlID) {   for(int nIndx = 0; ;nIndx++){      // 最後まで該当しない場合は検索終了      if(tblCtrlID[nIndx] == EOF) return 0;       (※)if(pWnd->GetFocus() == pWnd->GetDlgItem(tblCtrlID[nIndx])){       // 現在フォーカスのコントロールIDインデックス        break;      }     }   return nIndx; } そこで質問なのですが、コンボボックスのスタイルがドロップダウンの場合は(※)箇所の条件でヒットするのですが、ドロップダウンリストの場合はヒットしません。 ドロップダウンではなく、ドロップダウンリストを使用する必要があります。 何が解決策か分かる方いらっしゃいませんでしょうか? よろしくお願い致します。

みんなの回答

  • davidfox
  • ベストアンサー率58% (21/36)
回答No.1

eMbedded 版は知らないので 通常の Win32 と同じであると言う仮定で回答します。 ヒットしない理由としてはドロップダウンなリスト部が ComboBox の子ではない点で、これを捕まえるには、ちょっとコツが必要で WM_CTLCOLORLISTBOX しかチャンスが無かったように思います(変なタイミングですが)。 参考URL の 「コンボ ボックスのリスト ボックス部分をサブクラス化する方法は?」 はサブクラス化する例ですが、そのような方法でリスト ボックスのハンドルを捕まえておけばフォーカス判定が出来ると思います。

参考URL:
http://msdn.microsoft.com/ja-jp/library/cc403767%28v=vs.71%29.aspx

関連するQ&A

  • コンボボックス

    コンボボックスでドロップダウンリストをつくりたいのですが、どうやってデータを入れたらよいのでしょうか。 コンボボックスができてもデータがはいりません。 教えてください。

  • コンボボックスのドロップダウン

    当方、VBは全くの初心者なので、質問させていただきます。 コンボボックスがgetfocusした際に、自動でドロップダウンするように するには、どのようにすればいいのでしょうか。 初歩的なことで恐縮ですが、どなたかお教えください。

  • [Access2003]コンボボックスとリストボックスの違い

    今、Access2003のフォームのコントロールの作成について勉強しています。『コンボボックス』と『リストボックス』を見て、コンボボックスは、「ドロップダウン形式でスペースを節約できる点」、リストボックスは、「一覧がすべて表示される」という意味がよく分かりませんでした。 インターネットでいろいろ調べて見たのですが…. 例えば・・・・ 店名ID 店名 A A店 B B店 C C店 と『コンボボックス』と『リストボックス』が表示され、ボックスの上の選択の矢印があるかないかの違いしか分かりませんでした。 (1)Access初心者なので『コンボボックス』と『リストボックス』について簡潔に教えてくださったら助かります。もしホームページで『コンボボックス』と『リストボックス』について一目で見たら違いが分かるというものが掲載されていたら教えてください。 (2)コンボボックスの「ドロップダウン形式」がよく分からないです。

  • コンボボックスのリストの位置

    VisualBasic 6.0のコンボボックスに、API(CB_SETDROPPEDWIDTH)を利用してドロップダウンリストの幅を広げて使っています。 このときコンボボックスが画面の右端にあったり、極端に広いリストにした場合に、リストの右端が画面からはみ出してしまいます。 リストがはみ出すときは、コンボボックスの位置を変えずにリストのみ左へずらしたいのですが、そのようなことはできるのでしょうか?  よろしくお願いいたします。

  • コンボボックスのドロップダウンリストが表示されない

    MFCでアプリを作成、アプリの画面上にコンボボックスのリソースを貼り付け、アプリ起動直後は、コンボボックスのドロップダウンリストを表示できています。 しかし、アプリ画面のサイズを変更すると、▼ボタンを押下しても、ドロップダウンリストが表示されなくなってしまいます。 アプリ画面のサイズを変更後も、コンボボックスのドロップダウンリストを表示できるようにする方法を教えてください。

  • コンボボックスのドロップダウンリストの設定

    Excelのコントロールツールボックスからコンボボックスを作成したのですが、マウスのホイールをスクロールするとドロップダウンリストがコンボボックスの頭から離れてしまいます。 フォームツールバーから作成すれば離れないのですが、VBAでリンクを設定する関係でコントロールツールボックスから作成したいのです。 離れないように設定するにはどうしたらいいのでしょうか。 教えてください。宜しくお願いいたします。

  • EXCEL ★ コンボボックス

    データの入力規則でコンボボックスを作りました。 そこで質問です。 ドロップダウンリストから選択する場合とセルに直接入力する場合と両方可能にすることは出来ますか?? おわかりの方教えてくださーい!

  • コンボボックスについて

    コンボボックスでドロップダウンメニューが押された場合の処理は Private Sub ComboBox1_DropButtonClick() 処理 End Sub リスト項目がクリックされた時は Private Sub ComboBox1_Click() 処理 End Sub 上記の関数を組み合わせるにはどうすればよいでしょうか?用はComboBoxのドロップダウンメニューが押されて さらにリストの項目が選択してクリックした時はなんらかの処理を行うようにしたいのですがうまくいきません。よろしくお願い致します。

  • コンボボックスでドロップダウンリストにしたときに・・・・

    コンボボックスでドロップダウンリストにしてから実行をすると、最初の項目(一番上)が空白で、その下はリストに書かれてあるように表示されてます。 ドロップダウンしなくても見れるようにするにはどうしたらいのですか? 例: 野菜 ▽    ←ここを表示させたい    みかん    かぼちゃ    りんご    バナナ

  • エクセルのシートにコンボボックスを配置しようとしています。

    エクセルのシートにコンボボックスを配置しようとしています。 コントロールツールボックスのコンボボックスは、見た目があまりよくないところが 気になります。 ドロップダウンのボタンのデザインが角ばってることや シートのフォントと同一のフォントに設定してもちょっと違う(なぜ?)とこなど、 気にいりません。 フォームのコントロールは名前が変更できず、VBの関数がドロップ1_Change()などとなるため、 後に管理しづらそうで心配しています。 コントロールツールボックスのコンボボックスの見た目を改善する方法、または、 フォームのコントロールの名前を変更する方法がありましたら、 教えてください!!