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