VC 画一个圆形按钮

对于初学者来说,创建一个异性窗体有一些难度。网上的文章讲的有些复杂,代码一大戳一大戳的。

今天自己画一个简单的圆形按钮。

VC 画一个圆形按钮_第1张图片

要创造这样一个按钮只需要写几行代码。

思路:创建一个基于CButton的自己的类CMyButton。然后重写这个类的DrawItem和OnPaint

void CMyButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{
	CRgn newRgn;
	newRgn.CreateEllipticRgn(37,18,137,118);
	::SetWindowRgn(GetSafeHwnd(),(HRGN)newRgn,TRUE);//设置响应区域。
}


 

void CMyButton::OnPaint()
{
	CPaintDC dc(this);
	CRect rect;
	GetClientRect(&rect);
	dc.SetBkMode(TRANSPARENT);
	::Ellipse(dc.m_hDC,37,18,137,118);
	dc.DrawText("流年",rect,DT_CENTER|DT_VCENTER|DT_SINGLELINE); //画出按钮的轮廓和文本
}

基于这几行简单代码,可以体会画异形窗体的思路。并且完善它,使得按钮可以在不同状态下的不同显示样式。

你可能感兴趣的:(VC 画一个圆形按钮)