MFC --按钮的自绘

摘要:关于MFC按钮的自绘的深入研究和心得探讨。

步骤/方法

  • 01

    自绘控件是美化界面不可缺少的操作。 要自绘标准按钮控件,首先需要使控件具有自绘的能力,即要为按钮添加BS_OWNERDRAW属性。在此,我们需要重载PreSubclassWindow虚函数,在该函数中添加ModifyStyle(0, BS_OWNERDRAW);

  • 02

    当按钮控件具有了自绘功能之后,每次控件状态改变都会触发DrawItem函数,在该函数中来绘制按钮的形态外观,所以第二步就要重载DrawItem虚函数。在这个函数中就可以自由发挥了,比如绘制外边框,底色,按钮标题,内边框等等。

  • 03

    一般都会为按钮定义几种不同状态时的外观,比如光标滑过时的状态,按钮按下时的状态,按钮禁用时的状态,以及按钮的正常状态等等。这就要为新的按钮添加几种重要的消息响应。比如WM_MOUSELEAVE消息,WM_MOUSEHOVER消息和WM_MOUSEMOVE消息等等,值得一提的是前两个消息的响应函数需要自己手动添加,微软提供了一个TrackMouseEvent函数在光标离开一个窗口时投递WM_MOUSELEAVE消息,光标滑过窗口时投递WM_MOUSEHOVER消息。一般来说可以在WM_MOUSEMOVE消息响应函数中调用TrackMouseEvent函数来投递

  • 04

    WM_MOUSELEAVE消息和WM_MOUSEHOVER消息。然后在WM_MOUSELEAVE消息的响应函数中标记“光标已经离开按钮”,然后调用InvalidateRect函数让按钮重绘。在WM_MOUSEHOVER消息的响应函数中标记“光标正在按钮上方”,并调用InvalidateRect函数让按钮重绘。

(0)

相关推荐

  • WPS插图的魔术情结

    执行[插入]→[图像]命令在文中插入图像,即可动手编辑图像。如果图像大小不合适,单击选中图像后,周围出现选择框,在选择框上按下鼠标左键并做拖曳操作,即可按原图的纵横比来调整图像大小;右键单击图像、执行 ...

  • WPS文字中编辑图像的小攻略

    在工作或学习中,常常为了使编辑的文章能够更加令人信服或者生动,常常会在文章上插入图像.下面小编就向大家介绍如何使用WPS文字,在文章上直接编辑图像的方法.有需要的朋友赶快来看看. 执行[插入]→[图像 ...

  • edius怎么给视频制作虚化背景? edius背景虚化的教程

    edius中的视频想要虚化背景,该怎么虚化呢?主要使用手绘遮罩功能,下面我们就来看看详细的教程. 1.首先启动edius6,新建一工程,右键单击va轨道,从中选择添加素材选项,将素材导入. 2.选择视 ...

  • CATIA模型怎么进行凹槽操作?

    本篇经验主要讲CATIA中如何进行凹槽操作,凹槽为凸台拉伸的反作用效果,为在实体上进行切削类操作. 1.首先确定需要进行凹槽的平面.图中为已经存在的实体模型,我们将在其表面创建一个凹槽特征. 2.点击 ...

  • SolidWorks中台阶轴的两种画法

    运用SolidWorks创建三维实体是本软件的主要功能,但是根据设计者的习惯不同,同样的一个零件可以通过不同的方式创建,下面介绍台阶轴的创建的两种方法. 操作方法 01 打开SolidWorks201 ...

  • UI绘制设计鼠绘质感游戏按钮

    UI绘制设计鼠绘质感游戏按钮

  • UI设计鼠绘唯美渐变按钮图标

    UI设计鼠绘唯美渐变按钮图标

  • PS+AI教程鼠绘逼真的旋转按钮教程

    按着教程做的,觉得挺简单的,虽然不懂英文,但是看图片大概能看懂,或者说,谷歌翻译吧,不过生硬,所以按自己理解重新写了过程.过程可能会很啰嗦,但是这是为了照顾处于基础中的同学,觉得太啰嗦的同学,可以看w ...

  • 巧用WPS移动版添加文档手绘批注

    办公室一族,对Word文档的批注与修订功能简直再熟悉不过了,每天都在用。阿mo发现WPS移动版把word批注功能升级为手写批注,在手机、平板等触屏设备上用起来更方便、更人性化。下面阿mo就来告诉大家, ...