關於ComboBox的自繪的異常與DrawItem不響應等問題

        對於ComboBox而言,雖然與Button相比,自繪都在DrawItem函數中進行,但是實際自繪過程遠比Button複雜。原因之一就在於它本身的複雜度:它由三個控件組成(CEdit,CListBox,CButton)。而且在自毀過程中極易發生各種問題,現在總結如下:

        一、CComboBox的AddString函數異常

        原因:可能屬性未設置正確。

        需要設置Owner Draw屬性:這個屬性有三個選項:No(不採用任何自繪),Fixed(固定屬性的列表高度和寬度),Variable(改變列表的高度和寬度).最直白的理解分別是:不響應DrawItem()、響應DrawItem(不響應MeasureItem)、響應MeasureItem(也響應DrawItem)。也就是說,需要將三個風格嚴格對應起來。

        二、自定義CComboBox不經過DrawItem函數

        原因:同上。

        三、CComboBox的GetLBText函數取到空的字符串問題。

        原因:可能是屬性未設置正確:Has Strings屬性有沒有選上。如果沒有選上該屬性,即使調用了AddString函數,也在無法調用GetLBText函數來獲取字符串。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章