1

我正在使用带有 mfc 标准库的 Visual Studio 2012。

我想让一个项目无法被选中,但项目可以在列表中看到。

我怎样才能做到这一点?我是 MFC 的新手。请帮帮我

虽然这不是一个精确的解决方案,但我可以做到这一点。当Item被选中时,没有任何动作,并留言说Item无效所以,如果我只是可以改变Item的颜色,那么它即将完成我想要的功能。但我什至不知道如何只改变一件物品的颜色。

请帮帮我!TT

4

2 回答 2

2

要更改列表框中仅一项的颜色,您必须完全替换列表框绘画。您设置“所有者绘制”样式,然后为 WM_DRAWITEM 编写消息处理程序。它将为列表框中的每个项目调用。在 codeproject 有几个例子:这里是其中之一:

http://www.codeproject.com/Articles/135855/Owner-Drawn-CListBox

于 2013-05-08T03:10:25.843 回答
1

我认为 MFC 中不支持此功能。

但是您可以制作自己的列表,即源自 MFC 的列表。因为你可以重载OnItemChange(NMHDR* pNMHDR, LRESULT* pResult)我认为这是当用户选择列表中的不同项目时调用的。然后,您可以检查选择了哪个项目,并向用户发出警告说“您无法选择此项目”。我知道它不漂亮,但我不知道其他方式......

于 2013-05-06T09:13:18.907 回答