如何在MFC中建立非矩形button

通常狀況下,咱們建立的按鈕都是矩形的,但有時爲了知足特殊的需求,咱們要在對話框中建立一個非矩形的按鈕,好比,圓形,橢圓等。函數

要實現一個非矩形的按鈕,這就涉及到了自繪控件。自繪控件的方法有不少,能夠參考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

 

相關文章
相關標籤/搜索