设为首页 加入收藏

TOP

Windows界面编程:半透明窗体(一)
2013-09-24 09:25:42 来源: 作者: 【 】 浏览:581
Tags: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来获得滑块当前位置。

  4.当滑块位置发生变化时,在其父窗口中通过WM_HSCROLL或WM_VSCROLL来响应消息。

  下面给出完整的源代码(下载地址:http://download.csdn.net/download/morewindows/4947386)

   

首页 上一页 1 2 3 4 5 6 下一页 尾页 1/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Windows界面编程:异形窗体 下一篇Windows编程:位图背景与画刷

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: