通常狀況下,咱們建立的按鈕都是矩形的,但有時爲了知足特殊的需求,咱們要在對話框中建立一個非矩形的按鈕,好比,圓形,橢圓等。函數
要實現一個非矩形的按鈕,這就涉及到了自繪控件。自繪控件的方法有不少,能夠參考http://blog.csdn.net/ssslpk/article/details/12156335.net
下面我將舉例一個重載DrawItem()函數的方法來實現非矩形buttoncode
===========================================================================================================================blog
建立一個基類爲CButtonr的派生類CMyButton,而後重載DrawItem()函數,其聲明以下:圖片
virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);
DrawItem函數的實現以下:ip
void CMyButton::DrawItem(LPDRAWITEMSTRUCT lp)//lpDrawItemStruct { // TODO: 添加您的代碼以繪製指定項 CRect rc = lp->rcItem; CDC dc; dc.Attach(lp->hDC); dc.Ellipse(0,0,rc.Width(),rc.Height()); dc.DeleteDC(); }
效果以下(上面的代碼不包括圖片和邊框的顏色的實現):ssl