1. 程式人生 > >MFC控制元件 void DrawItem(LPDRAWITEMSTRUCT) { ASSERT(FALSE); }

MFC控制元件 void DrawItem(LPDRAWITEMSTRUCT) { ASSERT(FALSE); }

今天幫一位小朋友寫加密工具的時候,突然發現許久不用的MFC特生疏,控制元件函式都忘乾淨了,在查的基礎上,勉強寫了一個工具出來,挺簡陋的,接個圖給大家笑話下。

寫到用ListBox來顯示提示資訊的時候,發現給Assert,跟進去之後發現是這一句導致的

[cpp]
void CListCtrlBox::DrawItem(LPDRAWITEMSTRUCT)     { ASSERT(FALSE); }
[/cpp]

查了查google,說法很多,很多人都說要自己過載DrawItem函式,不過以前用的時候並沒有這樣做,所以可以肯定不是這個原因,再查了下,找到了方法,要設定這個ListBox的Owner Drow屬性是Fixed,選擇這個屬性為No再次編譯執行,並沒有錯誤了,看來應該是從VS08就有了這個屬性,我以前一直用的05所以沒感覺到這個,現在換成10就出了這樣一個問題,悲劇啊。