How to draw the static part of the combobox
我有一个自定义绘制的组合框,样式为
但我无法确定我找到了这样的代码
1 2 3 4 5 6 7 8 9 | 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); } |
但是当我使用它时,我得到所有项目都有 我想知道如何解决这个问题,如何检测我正在绘制下拉列表中的静态部分或常规项?
我只是检查 ODS_COMBOBOXEDIT 的状态。如果文档表明为编辑控件设置了此标志,则它适用于下拉列表。
我已经检查过像你一样以正常方式工作的组合框实现。
1 | bool bDrawStaticControl = (pDIS->itemState & ODS_COMBOBOXEDIT)!=0; |