需求:
combo box输入字符后,弹出下拉菜单,默认的操作会把输入的字符修改成下拉列表中的第一项。我不想要这个,我希望下拉菜单不影响我的输入。
解决方案:
去掉combo的CBS_HASSTRINGS风格
副作用:
去掉了CBS_HASSTRINGS风格会导致无法使用GetLBText来获取Item文字。
我的解决方案:
用SetItemData把数据塞到combo中,需要的时候再用GetItemDataPtr取出来。:
m_comboInput.SetItemData(index, (DWORD_PTR)pData);
// 取数据
DropItem* data = (DropItem*) this->GetItemDataPtr((int) lpDrawItemStruct->itemID);