自繪按鈕控制項的2個注意點

2021-06-22 15:48:49 字數 733 閱讀 5028

1、宣告自繪屬性:有兩種方式,一種是通過資源檢視修改按鈕的屬性,將owner draw改為true;另一種是通過**實現。

在重寫的presubclasswindow中新增一句自繪屬性:

void cmybutton::presubclasswindow()

2、繪製按鈕:通過過載虛函式drawitem實現,注意:過載的是虛函式drawitem,而不是新增wm_drawitem訊息的處理函式。宣告如下:

virtual void drawitem(lpdrawitemstruct lpdrawitemstruct);

如果新增的是wm_drawitem的處理函式,那麼執行時會出現斷言錯誤。

3、具體畫成什麼樣我就不講了,可以各自發揮。

按鈕的派生,控制項自繪,記幾點

cbutton presubclasswindow cbutton drawitem 這兩個成員函式可以在cbutton類中過載,過載後,首先執行presubclasswindow 然後才執行drawitem presubclasswindow是乙個很好的定製控制項的位置。如果我們通過過載cwnd ...

自繪控制項的方法

1.子類化控制項 2.重寫onpaint 所有控制項都是在onpaint裡畫出來的,我們可以不呼叫父類的onpaint,直接自己畫控制項。3.重寫控制項能響應的各種滑鼠鍵盤事件,通過狀態位在onpaint中畫出不同事件下控制項的樣子,比如滑鼠按下的狀態對應巨集button down,在響應函式中呼叫...

MFC控制項的自繪

常見的控制項自繪的方法有父視窗的ondrawitem 函式 子控制項的drawitem 函式 子控制項的ctlcolor 函式 子控制項的onpaint 函式,子控制項的onnmcustomdraw 函式等。自繪控制項的話需要控制項具有owner draw屬性,通過create 建立控制項的時候新增...