我正在使用带有 mfc 标准库的 Visual Studio 2012。
我想让一个项目无法被选中,但项目可以在列表中看到。
我怎样才能做到这一点?我是 MFC 的新手。请帮帮我
虽然这不是一个精确的解决方案,但我可以做到这一点。当Item被选中时,没有任何动作,并留言说Item无效所以,如果我只是可以改变Item的颜色,那么它即将完成我想要的功能。但我什至不知道如何只改变一件物品的颜色。
请帮帮我!TT
要更改列表框中仅一项的颜色,您必须完全替换列表框绘画。您设置“所有者绘制”样式,然后为 WM_DRAWITEM 编写消息处理程序。它将为列表框中的每个项目调用。在 codeproject 有几个例子:这里是其中之一:
http://www.codeproject.com/Articles/135855/Owner-Drawn-CListBox
我认为 MFC 中不支持此功能。
但是您可以制作自己的列表,即源自 MFC 的列表。因为你可以重载OnItemChange(NMHDR* pNMHDR, LRESULT* pResult)
我认为这是当用户选择列表中的不同项目时调用的。然后,您可以检查选择了哪个项目,并向用户发出警告说“您无法选择此项目”。我知道它不漂亮,但我不知道其他方式......