[MFC]如何在组合框中禁用项目?

时间:2013-05-06 09:02:50

标签: c++ mfc

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

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

我该怎么做?我是MFC的新手。请帮助我

虽然这不是一个确切的解决方案,但我可以做到这一点。 选择项目时,没有操作,并留下有关该项目无效的消息 所以,如果我只是可以改变项目的颜色那么,它即将完成我想要的功能。但我甚至不知道如何改变颜色只是一个项目。

请给我一个帮助!T.T

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

我不认为MFC中有这方面的支持。

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