创建一个圆角矩形按钮

新建一个picture用户对象:

uo_pic

picturename属性设置为按钮使用的图片


外部函数调用:
FUNCTION ulong CreateRoundRectRgn(ulong X1,ulong Y1,ulong X2,ulong Y2,ulong X3,ulong Y3) LIBRARY "gdi32.dll"

FUNCTION ulong SetWindowRgn(ulong hWnd,ulong hRgn,boolean bRedraw) LIBRARY "user32.dll"

constructor事件脚本:

ulong width1,height1,rgnh;

width1=UnitsToPixels(width,XUnitsToPixels!)+1
height1=UnitsToPixels(height,YUnitsToPixels!)+1

rgnh = CreateRoundRectRgn(7, 7, width1 - 7 , height1 - 7, 50, 50)//参数可适当调整以适应按钮的图片
SetWindowRgn(handle(this), rgnh, True)

注一:以上方法同样适用于窗口,只需要把constructor事件脚本放到窗口的open事件里就可以了。

注二:CreateRoundRectRgn函数说明

创建一个圆角矩形,该矩形由X1,Y1,X2,Y2确定,并由X3,Y3确定的椭圆描述圆角弧度
参数 类型及说明
X1,Y1 Long,矩形左上角的X,Y坐标
X2,Y2 Long,矩形右下角的X,Y坐标
X3 Long,圆角椭圆的宽。其范围从0(没有圆角)到矩形宽(全圆)
Y3 Long,圆角椭圆的高。其范围从0(没有圆角)到矩形高(全圆)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 MFC 中创建圆角矩形按钮,可以使用 `CButton` 类的派生类,自定义绘制函数来实现。下面是一份示例代码: 1. 创建一个自定义按钮类 `CRoundRectButton` ```c++ class CRoundRectButton : public CButton { public: CRoundRectButton(); virtual ~CRoundRectButton(); protected: virtual void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct); }; ``` 2. 在 `CRoundRectButton` 类中实现 `DrawItem` 函数,用于绘制圆角矩形按钮 ```c++ void CRoundRectButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) { CDC* pDC = CDC::FromHandle(lpDrawItemStruct->hDC); CRect rect = lpDrawItemStruct->rcItem; if (lpDrawItemStruct->itemState & ODS_SELECTED) // 按下状态 { pDC->FillSolidRect(rect, ::GetSysColor(COLOR_BTNFACE)); pDC->DrawEdge(rect, EDGE_SUNKEN, BF_RECT); } else // 正常状态 { pDC->FillSolidRect(rect, ::GetSysColor(COLOR_BTNFACE)); pDC->DrawEdge(rect, EDGE_RAISED, BF_RECT); } // 绘制圆角矩形 int nRound = 10; // 圆角大小 CRect roundRect(rect.left + 2, rect.top + 2, rect.right - 2, rect.bottom - 2); pDC->RoundRect(roundRect, CPoint(nRound, nRound)); } ``` 3. 在对话框类中添加 `CRoundRectButton` 控件,并设置样式 ```c++ CRoundRectButton m_btnRound; m_btnRound.Create(_T("圆角按钮"), WS_CHILD | WS_VISIBLE | BS_OWNERDRAW, CRect(50, 50, 150, 80), this, IDC_BTN_ROUNDRECT); ``` 在上面的代码中,`m_btnRound` 是一个 `CRoundRectButton` 类的对象,通过 `Create` 函数创建一个圆角矩形按钮,并设置样式为 `WS_CHILD | WS_VISIBLE | BS_OWNERDRAW`,其中 `BS_OWNERDRAW` 表示该按钮使用自定义绘制函数。 运行程序后即可看到一个圆角矩形按钮

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值