windows界面编程-背景图片、透明特效使用

windows界面编程-背景图片、透明特效使用

ID:18060679

大小:3.06 MB

页数:47页

时间:2018-09-13

windows界面编程-背景图片、透明特效使用_第1页
windows界面编程-背景图片、透明特效使用_第2页
windows界面编程-背景图片、透明特效使用_第3页
windows界面编程-背景图片、透明特效使用_第4页
windows界面编程-背景图片、透明特效使用_第5页
资源描述:

《windows界面编程-背景图片、透明特效使用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Windows界面编程第一篇位图背景与位图画刷   可以通过WM_CTLCOLORDLG消息来设置对话框的背景,MSDN上对这个消息的说明如下:The WM_CTLCOLORDLG messageissenttoadialogboxbeforethesystemdrawsthedialogbox.Byrespondingtothismessage,thedialogboxcansetitstextandbackgroundcolorsusingthespecifieddisplaydevicecontexthandle.当窗口消息响应函数接收这个消息时,

2、wParam表示对话框的设备上下方即HDC,lParam表示对话框的句柄。如果程序处理了这个消息,应返回一个画刷。系统将会用这个画刷来重绘对话框背景。因此我们在这个WM_CTLCOLORDLG消息中得到对话框的大小,并通过StretchBlt函数将位图缩放后贴到对话框的HDC中就完成了对话框背景的设置,然后返回一个空画刷给系统,这样系统就不会将位图背景给覆盖了。代码非常简单,要注意的是在使用StretchBlt函数缩放位图时,最好先使用SetStretchBltMode函数来设置下位图内容伸展模式,这样可以避免缩放后位图失真严重。SetStretchBl

3、tMode函数原型如下:YibinCityCitytracktrafficplanningisYibincityregionalrangewithintracktrafficsystemofonceintegration,andcitytracktrafficalsoisYibinCityCityintegratedtracktrafficsystemintheofpart,foraccurategraspcitytracktrafficresearchofobjectint SetStretchBltMode(    HDChdc,          

4、 //handletoDC   int iStretchMode   //bitmapstretchingmode);第一个参数就是设备上下方即HDC。第二个参数有四种设置:1. BLACKONWHITE or STRETCH_ANDSCANS 如果两个或多个像素得合并成一个像素,那么StretchBlt会对像素执行一个逻辑AND运算。这样的结果是只有全部的原始像素是白色时该像素才为白色,其实际意义是黑色像素控制了白色像素。这适用于白色背景中主要是黑色的单色点阵图。2. WHITEONBLACK or STRETCH_ORSCANS 如果两个或多个像素得

5、合并成一个像素,那么StretchBlt会对像素执行逻辑OR运算。这样的结果是只有全部的原始像素都是黑色时该像素才为黑色,也就是说由白色像素决定颜色。这适用于黑色背景中主要是白色的单色点阵图。3. COLORONCOLOR or STRETCH_DELETESCANS 简单地消除图素行或列,而没有任何逻辑组合。这是通常是处理彩色点阵图的最佳方法。4. HALFTONE or STRETCH_HALFTONE根据组合起来的来源颜色来计算目的的平均颜色。 其它技术细节可以见代码中的注释,完整代码如下(也可以下载,下载地址为:http://download.c

6、sdn.net/download/morewindows/4947377):[cpp] viewplaincopyprint?YibinCityCitytracktrafficplanningisYibincityregionalrangewithintracktrafficsystemofonceintegration,andcitytracktrafficalsoisYibinCityCityintegratedtracktrafficsystemintheofpart,foraccurategraspcitytracktrafficresearch

7、ofobject1.// 对话框位图背景  - WM_CTLCOLORDLG中使用StretchBlt贴图   2.//By MoreWindows-(http://blog.csdn.net/MoreWindows)   3.#include    4.#include "resource.h"   5.  6.const char szDlgTitle[] = "位图背景 使用StretchBlt贴图 MoreWindows-(http://blog.csdn.net/MoreWindows)";  7.  8.// 对话框消息

8、处理函数   9.BOOL CALLBACK DlgProc(HWND hDlg

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。