【VC界面】CButton按钮类和GroupBox分组框的自绘

大家都看到一些真实仪器仪表的界面,如汽车仪表盘、示波器等,这些界面在软件(Windows平台下MFC编程)上,是如何实现的呢?

首先MFC仅提供了一些基本的对话框、控件界面,而且它们都是标准灰色的,想要实现真实的仪器仪表界面,最基本的思路就是“贴图”。照一张真实的照片,然后使用OnEraseBkgnd加载到对话框的背景中去。这部分内容请搜索“OnEraseBkgnd”、“WM_ERASEBKGND”,网上有很多关于背景贴图的资料。


下来就是一些简单的控制界面,这里介绍的是【按钮】和【分组框】,例如下面的界面:


在这里下载程序:http://download.csdn.net/detail/dijkstar/7432427

【按钮】是基于网上的XPButton.cpp修改而来(大幅删除原有代码),能从源程序中看出,实现的思路很简单,响应鼠标移动在按钮上面、离开按钮、及获得焦点时分别在函数DrawItem内部使用黑色、绿色Brush,文字做DC操作;


【分组框】groupbox是从CStatic派生而来,实现思路更简单,内部只处理了一个OnPaint消息:画一个绿色矩形边框,在左上角写文字。

(注意:关联的【分组框】在测试Dlg中的拖放控件是一个静态文本控件,而不是一个groupbox控件。如果拖放一个groupbox时,当在dlg界面上敲入Tab键,会导致左上角的原始颜色的文字重回,不知如何解决?二是关联了静态文本控件,再向里面拖放按钮时,会被隐藏,最简单的解决办法按【ctrl+D】设置tab顺序,将按钮的tab顺序大于后面的静态文本框就行了。


这个程序,提供了一个简单的思路,用来仿真绘制一些简单的仪器控制界面。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值