0

カスタムリストビューにコンボボックスを追加しましたが、コンボボックスのテキストを現在のリストビューサブアイテムに設定しようとしています。

            case CBN_SELCHANGE:
                {
                    char txt[200];
                    ComboBox_GetText(hCombo, txt, 256);
                    int i = SendMessage(hListView, LVM_GETHOTITEM,0, 0);
                    ListView_SetItemText(hListView, i, 2, txt);
                }

私は何が間違っているのですか?

4

1 に答える 1

1

リストビューの「ホット」アイテムは、カーソルをその上に置いたアイテムであり、ホットトラッキングとホット選択が有効になっている場合にのみ使用されます。LVM_GETHOTITEMのSDKドキュメントは、ホットアイテムが実際に何であるかを説明するのに不十分です。CListCtrl :: GetHotItemのドキュメントには、もう少し詳細が記載されています。

コンボボックスから選択するとき、カーソルはリストボックス内のどの項目にもカーソルを合わせないため、テキストは設定されません。

代わりに、選択したアイテムを取得することをお勧めします。

int i = ListView_GetNextItem(hListView, -1, LVNI_SELECTED);

この投稿にはもう少し情報があります。

于 2013-02-06T17:17:41.777 に答える