快乐10分走势图

当前位置: 快乐10分走势图 > xp系统教程 > XP系统教程 > 详细页面

最新xp系统 win7系统 Visual C++小技巧:实现透明窗体

发布时间:2019-01-07 08:58:04 文章来源:windows xp sp3 作者: 陈凯运维工程师

  一、背景

  FlashGet的透明效果大家羡慕吧。传统的Windows应用程序想实现半透明效果,一般来说需要处理自己的窗口的WM_Paint消息窗口,很麻烦.现在好了,SetLayeredWindowAttributes是windows的新api,win2000以上才支持,它能使使窗体拥有透明效果.我在Google搜了下,电脑xp系统到手机,介绍SetLayeredWindowAttributes的文章大多是delphi的和vb的。好不容易找到一篇vc的,原版xp系统iso,依法炮制后,vc的IDE却说我SetLayeredWindowAttributes没有定义!后来想想应该是我的sdk没有升级。于是我在vc安装目录搜 索"SetLayeredWindowAttributes"的"*.h"文件,果然没有。怎么办?升级sdk吧.我去微软的网站一看,新的sdk就核心sdk就有二百多m呢(解压后更大),可怜我的硬盘没有一个分区大于200m的了!怎么办,这么好玩的api给看不给用,失望之余,我忽然想到了未公开api的使用的方法.这是个系统支持,自己sdk却没有的api,就把他当做windows未公开api试试!

  二、简单介绍一下SetLayeredWindowAttributes:(详见msdn)

BOOL SetLayeredWindowAttributes(
 HWND hwnd, // handle to the layered window
 COLORREF crKey, // specifies the color key
 BYTE bAlpha, // value for the blend function
 DWORD dwFlags // action
);

Windows NT/2000/XP: Included in Windows 2000 and later.
Windows 95/98/Me: Unsupported.
Header: Declared in Winuser.h; include Windows.h.
Library: Use User32.lib.
 

  一些常量:

  WS_EX_LAYERED = 0x80000;
  LWA_ALPHA = 0x2;
  LWA_COLORKEY=0x1

  其中dwFlags有LWA_ALPHA和LWA_COLORKEY。LWA_ALPHA被设置的话,通过bAlpha决定透明度,LWA_COLORKEY被设置的话,则指定被透明掉的颜色为crKey,其他颜色则正常显示。

  注:要使使窗体拥有透明效果,首先要有WS_EX_LAYERED扩展属性(旧sdk也没有的)。  
 
  三、例子代码:

  在OnInitDialog()加入:
 
//加入WS_EX_LAYERED扩展属性
SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,
GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000);
HINSTANCE hInst = LoadLibrary("User32.DLL");
if(hInst)
{
 typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD);
 MYFUNC fun = NULL;
 //取得SetLayeredWindowAttributes函数指针
 fun=(MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes");
 if(fun)fun(this->GetSafeHwnd(),0,128,2);
 FreeLibrary(hInst);
}
 

  唉!如果装了最新sdk就不用那么麻烦了!

  怎么样,效果不错吧!稍加修改还可以作出淡出淡入的效果, 注意第三个参数(128)不要取得太小了,为0的话完全透明,你就找不到窗体了!

作者:南海昭信责任编辑:方舟)

快乐10分走势图天极新媒体 最酷科技资讯

扫码赢大奖

评论

* 网友发言均非本站立场,本站不在评论栏推荐任何网店、经销商,谨防上当受骗!

以上就是最新xp系统 win7系统 Visual C++小技巧:实现透明窗体的全部内容,本文作者:陈凯运维工程师所写的原创文章仅此参考,具体的操作技术和了解多少电脑知识还是要看你本人去操作。本文来源:windows xp sp3 转载请注明,谢谢!

本文关键词: 技巧 透明 实现 Visual 窗体
文章标题:最新xp系统 win7系统 Visual C++小技巧:实现透明窗体
相关文章
一分时时彩-彩票时时彩开奖时间-1分时时彩是统一开奖吗 二分时时彩技巧-大发时时彩开奖-分分时时彩计划视频 彩票争霸8网址-万宝娱乐平台-彩神争8在线注册平台 快乐十分走势-广东快乐十分彩走势图-天津快乐十分投注技巧 大发开奖结果-免费大发快三软件-湖北快三最新开奖号码 亿博大发快三-大发快3计划网页版-大发快3彩票一分钟规律 彩神88app-彩神争霸大发平台-瑞彩网app下载官方网站 大发时时彩彩-大发快三大小规律-大发快三分分彩全天实时计划 CQ9棋牌-手游棋牌-财神国际棋牌手机版 秒速赛车计划网-北京赛车六码两期计划-北京pk赛车10开奖结果 测试站点(仅供学习,请勿正式使用) 飞艇赛车开奖结果-一分赛车计划网站-北京赛车系统 大发快三网址-大发3d计划-上海快三开奖号码 大发快3玩法-大发快3大小单双计划-大发快3技巧 二分时时彩-分分时时彩大小单双-分分时时彩走势图 大发快三注册-大发快三玩法-大发快三在线计划 广东快乐十分-快乐十分走势图-快乐10分开奖直播 大发快三邀请码-大发快3和值规律-大发快三计划 北京pk10赛车-北京赛车开奖结果走势-北京pk赛车杀一码计划 分分时时彩-分分时时彩必中计划-分分时时彩注册