我用cbutton創建了一個派生類 將一個button控制元件屬性改為owner draw后建立一個關聯變數,除錯就處于崩潰狀態,找不到原因 ,麻煩各位大神幫幫忙。
uj5u.com熱心網友回復:
必須重寫CButton派生類的OnDraw()函式,否則就會報錯!uj5u.com熱心網友回復:
嗯 找到問題了 必須重寫CButton派生類的虛函式drawitem(),不加就不行 ,里面有一個WM_drawitem,一直加成了這個。。。。非常感謝!uj5u.com熱心網友回復:
需要重寫DrawItem虛函式~uj5u.com熱心網友回復:
崩潰的時候在彈出的對話框按相應按鈕進入除錯,按Alt+7鍵查看Call Stack即“呼叫堆疊”里面從上到下列出的對應從里層到外層的函式呼叫歷史。雙擊某一行可將游標定位到此次呼叫的源代碼或匯編指令處,看不懂時雙擊下一行,直到能看懂為止。uj5u.com熱心網友回復:
自繪Button,不建議通過處理owner draw進行。而應該直接處理WM_PAINT訊息。因為Checkbox和radio button也是CButton。當處理了owner draw后,Checkbox和radiobutton的Checked狀態,就無效了。
uj5u.com熱心網友回復:
勾選狀態還是要自己去獲取的,ODS_XXX 并不會告訴你這些狀態。你正常時怎么畫按鈕的,對于勾選控制元件,就先判斷狀態,然后再寫兩個畫按鈕邏輯,一個畫勾選的,一個畫未勾選的。uj5u.com熱心網友回復:
既然都選擇了自繪,當然要實作自繪函式。只要有自繪函式就不會崩潰,不實作,就會出現一個與背景不一樣的框框。
uj5u.com熱心網友回復:
網上很多現成的button類,可以下載下來研究一下轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/85586.html
標籤:界面
下一篇:duilib表單陰影
