mfc如何使得按钮透明,但还是点击触发

问题遇到的现象和发生背景

mfc如何使按钮变得透明,但是还是能点击触发(VS2019)(如果可以尽量不要外加文件)

问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

img


响应函数:

img


设置属性:

img

(1)把原来的CMyButton 类删除,添加下面两个文件(代码太长,放在网盘中了):
链接: https://pan.baidu.com/s/1J0N1aRCUS7ESiSFhhQu7UA 提取码: a1zq
(2)在界面中添加一个按钮,点击右键,选择“添加变量”,把变量类型改为CButtonST

img

(3)双击按钮,给按钮添加一个点击事件响应函数
(4)做一个白色透明的bmp文件(在PPT中,画一个约按钮大小的矩形,设置矩形为无边框、白色填充,透明度调到100%,把矩形保存为bmp文件),然后再工程中添加资源,把这个bmp导入工程。

img

img

(5)在OnInitDialog函数中添加如下代码:

m_btnTest.SetBitmaps(IDB_BITMAP1, RGB(255, 255, 255)); //m_btnTest 是在步骤(2)中添加的CButtonST类型的变量
m_btnTest.DrawTransparent();

(6)清理工程,重新编译运行即可

运行效果图(我给窗口加了个背景图)

img

鼠标移动到按钮上后的效果:

img