解决上一篇的两个问题。
一,按钮背景透明
方法是,在绘制按钮之前,向按钮的父窗口发生WM_CTLCOLORBTN消息。该消息返回一个画刷句柄,系统使用该画刷句柄画出按钮的背景。所以我们在处理这个消息的时候,为系统返回一个空的画刷句柄就可以了。
直接在回调函数中添加代码
1 case WM_CTLCOLORBTN: 2 { 3 HBRUSH hBrush; 4 //hBrush = CreateSolidBrush(RGB(255, 0, 0)); 5 hBrush=(HBRUSH)GetStockObject(NULL_BRUSH); 6 return (long)hBrush; 7 }
去掉FillRec函数,仍然可以实现下图效果:
二,设置系统菜单栏为渐变色
响应WM_NCPAINT。该消息在窗口框架被绘制时被送去窗口。
这个还没尝试,我还是先一条路走到黑,继续用去掉标题栏,重绘这个思路。
WM_NCPAINT参考https://msdn.microsoft.com/ZH-CN/library/windows/desktop/dd145212(v=vs.85).aspx
时间: 2024-10-13 04:43:52