スタイル付きのカスタム描画コンボボックスがCBS_DROPDOWNLIST
ありCBS_OWNERDRAWVARIABLE
、ドロップダウンリストのアイテムを正常に描画できますが、ユーザーがアイテムを選択すると、コンボボックスの静的部分 [アイテムを選択した後に表示されたままになり、選択を表示するコンボの部分] に描画されます。次の画像のようにカスタムテキストを付けたい
しかし、私はこのようなコードを見つけました
if(DrawItemStruct.CtlType == ODT_COMBOBOX)//the static part of the combo
DrawComboText(pDC, DrawItemStruct.itemID, &DrawItemStruct.rcItem);
else//the rest items
{
// Copy the text of the item to a string
char sItem[256];
GetString(sItem, DrawItemStruct.itemID);
biDrawText(pDC, sItem, -1, &DrawItemStruct.rcItem, f | DT_VCENTER | DT_SINGLELINE);
}
しかし、私がそれを使用したとき、CtlType == ODT_COMBOBOX
私は上記のコードをデバッグしたとき、それODT_COMBOBOX
は静的部分のために戻り、ドロップダウンリストの項目のためにそれを返しODT_LISTBOX
ます。
この問題を修正する方法を知りたいのですが、ドロップダウン リストで静的な部分または通常のアイテムを描画していることを検出する方法を教えてください。