问题背景
这是UE的一个要求,是在CComboBox下拉出ListBox的时候,弹出一个选择窗口,然后选中一项,显示在CComboBox的Edit中
同事的做法是在ComboBox的父窗口捕捉ComboBox的CBN_DROPDOWN通知消息,在消息响应函数中弹出选择窗口,然后为ComboBox设置Strings和选中项。但是不好的现象是,因为是在处理下拉的消息,故此函数结束的时候,下拉ListBox没有收回。
开始的做法
开始想当然的在通知消息响应函数结束的地方调用
Combobox.SendMessage( CB_SHOWDROPDOWN, (WPARAM)FALSE, 0)
来将下拉框收回,但是失败,于是又尝试了
Combobox.SendMessage( WM_KILLFOCUS)和
Combobox.SendMessage( WM_KEYDOWN, VK_ESCAPE, 0)
全部失败。
有些进步了
经过上面的失败,写了一个简单的对话框程序来测试CComboBox,发现其ListBox不是在...[ 查看全文 ]