摘要:本文主要向大家介绍了VC编程之MFC窗口透明,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。
本文主要向大家介绍了VC编程之MFC窗口透明,通过具体的内容向大家展示,希望对大家学习VC编程有所帮助。
[cpp] view plain copy
1.// 在OnCreate()或OnInitDialog()加入以下代码
2. SetWindowLong(this->GetSafeHwnd()
3. , GWL_EXSTYLE, GetWindowLong(this->GetSafeHwnd()
4. , GWL_EXSTYLE)|WS_EX_LAYERED);
5. SetLayeredWindowAttributes(RGB(0, 0, 0), 125, 0x2/*0x1 | 0x2*/);
6.
7.// SetWindowLong是一个Windows API函数。该函数用来改变指定窗口的属性。
8.
9.LONG SetWindowLong(
10.HWND hWnd, // handle to window
11.int nlndex, // offset of value to set
12.LONG dwNewLong // new value
13.);
14.
15./*
16.hWnd
17.窗口句柄及间接给出的窗口所属的类。
18.nlndex
19.指定将设定的大于等于0的偏移值。有效值的范围从0到额外类的存储空间的字节数减4:例如若指定了12或多于12个字节的额外类存储空间,则应设索引位8来访问第三个4字节,同样设置0访问第一个4字节,4访问第二个4字节。要设置其他任何值,可以指定下面值之一:
20.值 意义
21.GWL_EXSTYLE 设定一个新的扩展风格。
22.GWL_HINSTANCE 设置一个新的应用程序实例句柄。
23.GWL_ID 设置一个新的窗口标识符。
24.GWL_STYLE 设定一个新的窗口风格。
25.GWL_USERDATA 设置与窗口有关的32位值。每个窗口均有一个由创建该窗口的应用程序使用的32位值。
26.GWL_WNDPROC 为窗口过程设定一个新的地址。
27.
28.当hWnd参数标识了一个对话框时,也可使用下列值:
29.值 意义
30.DWL_DLGPROC 设置对话框过程的新地址。
31.DWL_MSGRESULT 设置在对话框过程中处理的消息的返回值。
32.DWL_USER 设置的应用程序私有的新的额外信息,例如一个句柄或指针。
33.
34.dwNewLong
35.指定的替换值。
36.返回值
37.如果函数成功,返回值是指定的32位整数的原来的值。如果函数失败,返回值为0。若想获得更多错误信息,请调用GetLastError函数。
38.如果指定32位整数的原来的值为0,并且函数成功,则返回值为0,但是函数并不清除最后的错误信息,这就很难判断函数是否成功。这时,就应在调用SetWindowLong之前调用callingSetLastError(0)函数来清除最后的错误信息。这样,如果函数失败就会返回0,并且GetLastError。也返回一个非零值。
39.
40.如果由hWnd参数指定的窗口与调用线程不属于同一进程,将导致SetWindowLong函数失败。
41.*/
42.BOOL SetLayeredWindowAttributes(
43.HWND hwnd, // handle to the layered window
44.COLORREF crKey, // specifies the color key
45.BYTE bAlpha, // value for the blend function
46.DWORD dwFlags // action
47.);
48.
49./*
50.hWnd是透明窗体的句柄,
51.crKey为掩码的颜色,可以用RGB(r,g,b)来指定。
52.bAlpha是不透明度,取值范围是(0,255),其中0代表全透明,255代表不透明。
53.dwFlags是透明方式,可以取两个值:
54.当取值为LWA_ALPHA时,crKey参数无效,bAlpha参数有效;
55.当取值为LWA_COLORKEY时,窗体中的所有颜色为crKey的地方将变为透明,bAlpha参数无效。
56.LWA_ALPHA = 0x2
57.LWA_COLORKEY=0x1
58.也可以取两个值的组合:LWA_ALPHA Or LWA_COLORKEY。这样crKey的地方将变为全透明,而其它地方根据bAlpha参数确定透明度。
59.要使使窗体拥有透明效果,首先要有WS_EX_LAYERED扩展属性,方法:
60.先声明GetWindowLong和SetWindowLong
61.*/
以上就介绍了VC/MFC的学习,希望对VC/MFC有兴趣的朋友有所帮助。了解更多内容,请关注职坐标编程语言VC/MFC频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号