首页 > OOP语言 > VC.net > 正文

Windows界面编程(2) 半透明窗体
2014-01-09 00:00:00   来源:www.bianceng.cn   评论:0 点击:

暂时无描述信息

上一篇《Windows界面编程第一篇 位图背景与位图画刷》介绍了通过WM_CTLCOLORDLG消息来来设置对话框的背景以及位图画刷的使用。本篇将介绍动态调节窗体透明度的方法。

调节窗体透明度可以先使用SetWindowLong为窗体加上WS_EX_LAYERED属性,再使用来SetLayeredWindowAttributes指定窗体的透明度。这样就可以在程序运行时动态的调节窗体的透明度了。

下面先介绍下SetWindowLong和SetLayeredWindowAttributes函数。

SetWindowLong可以用来设置窗口的一些属性,其函数原型如下:

LONGSetWindowLong(

HWNDhWnd,

int nIndex,

LONGdwNewLong

);

第一个参数表示窗口句柄。

第二个参数代表要设置的哪一种值,如GWL_STYLE表示将设置窗口的风格,这个参数还可以取GWL_EXSTYLE,GWL_WNDPROC,DWL_DLGPROC,GWL_HINSTANCE,GWL_USERDATA等等。

第三个参数表示要设置的值。

比如要设置对话框也能够可调节窗口大小,可以用:

// 设置对话框大小可调节

SetWindowLong(hDlg, GWL_STYLE, GetWindowLong(hDlg, GWL_STYLE) | WS_SIZEBOX);

SetLayeredWindowAttributes在MSDN上解释如下:

The SetLayeredWindowAttributes function sets the opacity and transparency color key of a layered window.

其函数原型为:

BOOLSetLayeredWindowAttributes(

HWNDhwnd,

COLORREFcrKey,

BYTEbAlpha,

DWORDdwFlags

);

第一个参数表示窗口句柄。

第二个参数表示透明色。

第三个参数表示透明度。

第四个参数表示函数将完成什么样的功能,设置成LWA_COLORKEY表示为窗口指定了透明色,设置成LWA_ALPHA表示将调整窗口的透明度,可以同时设置这两种功能。

程序代码还将用到Slider控件,这种控件可以有如下操作:

1.通过SendMessage + TBM_SETRANGE来设置滑块变化的范围。

2.通过SendMessage + TBM_SETPOS来设置滑块当前位置。

3.通过SendMessage + TBM_GETPOS来获得滑块当前位置。

查看本栏目更多精彩内容:http://www.bianceng.cn/Programming/VC_NET/

相关热词搜索:

上一篇:Windows界面编程(3) 异形窗体 普通版
下一篇:Windows界面编程(1) 位图背景与位图画刷

分享到: 收藏