C++自定义按钮重写
C++里自定义按钮的写法,尤其是用 MFC 开发界面时,确实有点老派但还蛮实用。你要是想做点不那么“原始”的 UI,那重写下 CButton
,搞个自己的 CMyButton
类,是挺靠谱的一招。可以改文字、改颜色、换字体,甚至还能根据状态切样式,挺灵活的。
继承 CButton
搞自绘,是老 MFC 项目里常见的玩法。你只要在 PreSubclassWindow()
里加个 ModifyStyle(0, BS_OWNERDRAW)
,按钮就能自己画了。后面再用 DrawItem()
和自定义的 DrawButton()
方法,就能画出你想要的按钮效果。
你可以根据不同状态(比如鼠标悬停、按下、禁用)调整背景色和文字颜色,看起来就没那么“死板”了。比如:RGB(192,192,192)
代表普通状态,RGB(255,255,255)
是鼠标进入状态,简单直观。
有个小建议:如果你按钮上要显示多行文本,最好控制一下 CRect
的边距和字体大小,不然容易“挤一块”。另外,SetTextFont()
这个方法挺好用,换字体也方便。
,这套写法虽然不是“现代”,但在老项目或者稳定需求下,用起来还挺香的。如果你最近正好在维护 MFC 的老界面,不妨抽空搞一搞。
42.5KB
文件大小:
评论区