用C++兑现半透明按钮控件(PNG,GDI+)
用C++实现半透明按钮控件(PNG,GDI+)使用MFC实现上面的按钮半透明效果能看到父窗口中的内容,上面是效果图(
用C++实现半透明按钮控件(PNG,GDI+)


使用MFC实现上面的按钮半透明效果能看到父窗口中的内容,上面是效果图(一个是带背景图片的、另一个是不带的)。控件继承自CWnd类(彩色的部分是窗口的背景图片、按钮是PNG图片,第二个图标是鼠标指向时的效果)。图标的绘制使用GDI+绘制PNG图片,在此不多说了(处理WM_PAINT消息):
透明的关键:注意后面调用此方法的代码
关键在于InvalidateRect函数:通知父窗口重新绘制特定区域,执行此函数后按钮所在区域就被父窗口绘制的内容覆盖.在父窗口绘制完成后,
按钮也会收到WM_PAINT消息,执行上面的一段OnPaint代码.
捕获鼠标指向或移出事件(处理WM_MOUSEMOVE,WM_MOUSEOVER,WM_MOUSELEAVE消息):
附:从资源加载PNG图片附:从资源加载PNG图片
平铺图片的代码