ext 确认框 自定义按钮_自定义按钮

d4f639af2c64126351e52c89053610b4.png

流程介绍

自定义按钮实际上就是新建一个自定义类,系统标准按钮也不知道能不能重绘,反正我不知道怎么去重绘,只能新建一个类自己去画了。

画一个自定义控件很简单,用RegisterClass注册一个类,然后在回调函数的WM_PAINT属性中用GDI去画控件。

代码解释

注册类只能在CreateWindow之前执行,所以我们找到注册顶级容器类的地方,在下面修改一下wndclass的属性再注册,代码如下:

977f35bb0003e09364fda18c2710c04a.png

BtnWndProc是我们自定义按钮的回调函数名。

光标使用手型,类名为FButton,也就是系统标准按钮类名前加了个F。

修改完毕后注册一下就可以了。

然后我们在WndProc的WM_CREATE消息中使用CreateWindow新建自定义按钮,我们只要把类名改一下就可以了,代码如下:

937dcc2121ee9ab9b24e15d6d105d261.png

接下来写BtnWndProc函数,模板采用WndProc,我们只修改WM_PAINT消息,给这个按钮画一个边框,我们使用GDI函数的BeginPaint、EndPaint、MoveToEx和LineTo,代码如下:

091264a7e17f751895ed101b75145219.png

HDC和PAINTSTRUCT作为绘图相关的信息。

BeginPaint和EndPaint函数作为为指定窗口进行绘图的范围,BeginPaint通知操作系统准备绘图,EndPaint结束绘图。

MoveToEx相当于是将画笔移动到指定坐标,这里设定是(0, 0)。

LineTo是从MoveToEx或是上一个LineTo开始向指定坐标绘制线段,我们这里执行了四次,也就是为按钮画了一个框,运行效果如下:

012670300c40a444f9a71051c2c176f0.png

在左上角我们就画了一个框了,并且鼠标移上去会变成手型,这就是我们之前注册类时的IDC_HAND。

只不过这看起来就是一个框,根本不像是一个按钮,而且连文本都没有,点击也没有任何反应。

别急,下一节课我们来调整自定义按钮。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值