Visual C ++ 2008を使用して、ワイド文字を使用したWIN32APIダイアログを使用してCプログラムを実行しています。これまでのところすべてのコントロールが機能していますが、ツールボックスからリソースダイアログにドラッグアンドドロップしてコンボボックスを追加しました。必要なコーディングを行いましたが(以下を参照)、コンボボックスをクリックしても、リストがドロップダウンしていないか、コンボボックスをクリックしても空になっているようです。ただし、最後のアイテム(「アイテム2」)はコンボボックスに表示されます。アプリは1つのダイアログボックスのみで構成されているため、コードをWM_CREATEではなくWM_INITDIALOGに配置しています。これが私のコードの一部です:
LRESULT CALLBACK BasicScanProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
HWND hWndComboBox;
switch(uMsg)
{
case WM_INITDIALOG:
hWndComboBox = GetDlgItem(hwnd,IDC_COMBO1); //gets handle
SendMessage(hWndComboBox, CB_ADDSTRING, 0, TEXT("ITEM 1")); //adds items
SendMessage(hWndComboBox, CB_ADDSTRING, 0, TEXT("ITEM 2"));
SendMessage (hWndComboBox, CB_SETCURSEL, (WPARAM) 1, (LPARAM) 0); //display first item
私は上記と同じ結果で以下を試しました:
SendMessage (hWndComboBox, (UINT) CB_ADDSTRING, (WPARAM) 0, (LPARAM) "ITEM 1");
SendMessage (hWndComboBox, (UINT) CB_ADDSTRING, (WPARAM) 0, (LPARAM) "ITEM 2");
コントロールをクリックしたときに、コンボボックスのドロップダウンリストに2つのアイテム(アイテム1とアイテム2)を表示するにはどうすればよいですか?
はい、この問題は解決されました。問題はコーディングのどこにもありませんが、マウスまたは矢印キーを使用して手動でサイズを変更する際に、ビジュアルC ++のリソースエディターのコンボボックスコントロールの高さを、ドロップダウンリスト領域がドロップしたときの高さも考慮します。クリックされます)プラス通常の非ドロップダウンモードでのコンボボックスの通常の高さ。したがって、コンボボックスコントロールをリソースエディターに配置したときのサイズ(高さ)は、ドロップダウンリスト領域がまだ展開されていないため、コンボボックスコントロールだけのデフォルトの高さよりも大きくする必要があります。
コンボボックスコントロールの高さを変更するのは少し注意が必要です。コンボボックスを最初にクリックして選択したとき、マウスカーソルは最初のクリックでサイズ変更の上/下矢印に変わりません。コンボボックスの右端にある下向き矢印をもう一度クリックする必要があります(はい、2回目)。そうすると、サイズ変更の上下矢印を取得できるようになります。この情報を提供してくれた@JonathanPotterに感謝します!
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加