首页 / 软件开发 / VC.NET / Windows界面编程(2) 半透明窗体
Windows界面编程(2) 半透明窗体2014-01-09上一篇《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来获得滑块当前位置。