您的位置:首页 > 其它

如何在MFC中创建非矩形button

2013-11-14 18:00 169 查看
一般情况下,我们创建的按钮都是矩形的,但有时为了满足特殊的需求,我们要在对话框中创建一个非矩形的按钮,比如,圆形,椭圆等。

要实现一个非矩形的按钮,这就涉及到了自绘控件。自绘控件的方法有很多,可以参考/article/8984175.html

下面我将举例一个重载DrawItem()函数的方法来实现非矩形button

===========================================================================================================================

创建一个基类为CButtonr的派生类CMyButton,然后重载DrawItem()函数,其声明如下:

virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct);


DrawItem函数的实现如下:

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();
}


效果如下(上面的代码不包括图片和边框的颜色的实现):

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: