2013-05-06 64 views
0

我正在使用Visual Studio 2012與mfc標準庫。[MFC]如何在組合框中禁用項目?

我想使一個項目不能被選中,但Item可以在列表中看到。

我該怎麼做?我是MFC的新手。 plz幫我

雖然這不是一個確切的解決方案,我可以做到這一點。 當選擇該項目時,沒有任何操作,並留下關於該項目的消息無效 所以,如果我只是可以改變項目的顏色,那麼,它即將完成我想要的功能。但我甚至不知道如何改變顏色只是一個項目。

PLZ給我的幫助!T.T

回答

0

我不認爲有這個在MFC支持。

但是你可以製作你自己的列表,它是從MFC中派生出來的。在這一點上,你可以重載OnItemChange(NMHDR* pNMHDR, LRESULT* pResult)我認爲這是當用戶在列表中選擇一個不同的項目時調用的。然後,您可以檢查選定的項目,並向用戶發出警告:「您不能選擇該項目。」我知道這並不漂亮,但我不知道其他方式...

1

要更改列表框中只有一個項目的顏色,您必須完全替換列表框繪畫。您設置「所有者繪製」樣式,然後爲WM_DRAWITEM編寫消息處理程序。它將被調用列表框中的每個項目。在codeproject上有幾個例子:這裏是其中之一:

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