-
竭诚为您提供优质文档
< br>/
双击可除
dw
表格背景半透明
p>
篇一:
windows
界面编程
-
背景图片、透明特效使用
windows
< br>界面编程第一篇位图背景与位图画刷
可以通过
wm_ctlcoloRd
lg
消息来设置对话框的背景,
msdn
上对这个消息的说明如下:
<
/p>
thewm_ctlcoloRdlgmessageissenttoadialogb
oxbeforethe
ondingtothismessage,t
hedialogboxcansetitstextandbackgroundcolorsusi
ngthe
specifieddisplaydevicecontexthandl
e.
当窗口消息响应函数接收这
个消息时,
wparam
表示对话
框的
设备上下方即
hdc
,
lparam<
/p>
表示对话框的句柄。如果程
序处理了这个消息,应返回一个画刷。
系统将会用这个画刷
来重绘对话框背景。
因此我们在这个
< br>wm_ctlcoloRdlg
消息中得到对话框的
大小
,并通过
stretchblt
函数将位图缩放后贴到对话框的
hdc
中就完成了对话框背景的设置,然后返回一个空画刷给<
/p>
系统,这样系统就不会将位图背景给覆盖了。
第
1
页
共
14
页
代码非常简单,要注意的是在使用
stretchblt
函数缩
放位图时
,最好先使用
< br>setstretchbltmode
函数来设置下位图内容伸展模式,
这样可以避免缩放后位图失真严重。
setstretchbltmod
e
函
数原型如下:
intsetstr
etchbltmode(
hdchdc,//handletodc
intistretchmode//bitmapstretchingmode
);
第一个参数就是设备上下方即
hdc
。
第二个参数有四种设置:
nwhiteorstRetch_andscans
如果两个或多个像素得合并成一个
像素,那么
stretchblt
会对像素执行一个逻辑
and
运算。
这样的结果是
< br>只有全部的原始像素是白色时该像素才为白色,其实际意义
是黑色像素控制了白色
像素。这适用于白色背景中主要是黑
色的单色点阵图。
nblackorstRetch_oRscans
如果两个或多个像素得合并成一个像素,那么
stretchblt
会对像素执行逻辑
oR
运算。这样的结果是只有
全部的原始像素都是黑色时该像素才为黑色,也
就是说由白
色像素决定颜色。这适用于黑色背景中主要是白色的单色点
< br>阵图。
第
2
页
共
14
页