MFC:如何确定cmbobox列表中当前突出显示的项目(未选择的项目)

MFC:如何确定cmbobox列表中当前突出显示的项目(未选择的项目),mfc,Mfc,这与C#questions类似,但不同,但众所周知,MFC不是.NET。MFC对象没有与.NET对象相同的运行时属性。我不知道这是否会有很大帮助,但是……每次突出显示的项目更改时,您都会收到一条CB_GetComboxInfo消息 我不认为你通过这条消息收到的信息会有帮助,但是如果你真的需要知道突出显示的项目,也许你可以根据鼠标位置和每个项目的高度来计算它。有点棘手,但可能 我希望它能有所帮助。通过使用所有者绘制机制(即使它是一个简单的文本列表),回调具有标志/属性,显示需要“突出显示”的条目,

这与C#questions类似,但不同,但众所周知,MFC不是.NET。MFC对象没有与.NET对象相同的运行时属性。

我不知道这是否会有很大帮助,但是……每次突出显示的项目更改时,您都会收到一条CB_GetComboxInfo消息

我不认为你通过这条消息收到的信息会有帮助,但是如果你真的需要知道突出显示的项目,也许你可以根据鼠标位置和每个项目的高度来计算它。有点棘手,但可能


我希望它能有所帮助。

通过使用所有者绘制机制(即使它是一个简单的文本列表),回调具有标志/属性,显示需要“突出显示”的条目,我们会发布关于当前“突出显示”的条目的通知


其复杂性远远低于在ComboBoxEx控件中实现基本ComboBox功能(例如,基本ComboBox样式不适用于ComboBoxEx-请勿询问)。

我认为您无法在不选择项目的情况下突出显示该项目。您可以取消选择,但这是一个选择。在组合框中,单击下拉列表,然后将鼠标移动到列表中的项目上。这些项目会突出显示,如果您按enter键,将被选中。我认为这可能会满足我们的需求。我们开始研究ccomboxex,它有一些“附加”通知,其中一个包括您提到的结构,该结构有一个标志,指示该项是否“已选择”。我会让你知道的!ComboBoxEx太难了,无法实现基本的、简单的ComboBox功能,更不用说实现我的需求了。最终使用了所有者抽取机制-更多信息,请参见我的答案。