`
emowuyi
  • 浏览: 1478096 次
文章分类
社区版块
存档分类
最新评论

windowsSDK利用子窗口控件设置窗口透明

 
阅读更多

在看对话框之前,还是觉得有必要先看一下子窗口控件,很多对话框的知识点都涉及到子窗口控件。

正好看到学长的一篇实现窗口透明化的文章,对它比较感兴趣,于是就想拿这个例子来练练手吐舌头


首先先介绍下窗口透明化的实现:

首先是下面这个函数

LONG SetWindowLong(HWND hWnd,int nlndex,LONG dwNewLong);

SetWindowLong该函数改变指定窗口的属性.函数也将指定的一个32位值设置在窗口的额外存储空间的指定偏移位置。

 SetWindowLong(hwnd,GWL_EXSTYLE,WS_EX_LAYERED);
上面这条代码扩展了一种窗口风格,其中GWL_EXSTYLE设定一个新的扩展风格

接下来我们就可以使用下面这个函数来实现窗口的透明化:

BOOL SetLayeredWindowAttributes(
HWND hwnd, // handle to the layered window 透明窗体的句柄
COLORREF crKey, // specifies the color key 颜色值
BYTE bAlpha, // value for the blend function 透明度,取值范围是[0,255]
DWORD dwFlags // action 透明方式,可以取两个值:
);

当取值为LWA_ALPHA时,crKey参数无效,bAlpha参数有效;
当取值为LWA_COLORKEY时,bAlpha参数有效,而窗体中的所有颜色为crKey的地方将变为透明。

其中dwFlags有LWA_ALPHA(值为2)和LWA_COLORKEY(值为1)两种设置,如果LWA_ALPHA被设置的话,通过bAlpha参数指定窗体的透明度;如果LWA_COLORKEY标志被设置的话,则指定关键色为crKey,该颜色所覆盖的区域将从窗体去除,去除后的区域将不再进行点击检测,其他颜色则正常显示。如果阿尔法混合值设置为0,其窗口区域同样不进行点击检测。

以上这些就是有关窗口透明度实现的方法了,好,现在我结合子窗口控件来具体实现它。代码如下:


在编辑框里输入0-255的任意数字,点击确定,窗口就能实现透明化的设置了。

接下来的任务我打算在看完对话框之后再用对话框实现窗口透明的效果,增加滚动条的实现,鼠标的实现,更好地理解和学习对话框微笑

我是一个新手,希望大家能帮我指出错误我好加以改正,谢谢~~


分享到:
评论

相关推荐

    VC++做异形窗口 透明效果

    3.利用位图创建异形对话框窗口利用位图创建异形对话框原理是根据象素的颜色来进行“扣像”处理,对所有非指定颜色象素区域进行区域组合。利用这一技术,实际上就是实现对话框/窗口的位图背景,并且对指定的颜色区域...

    C++ win32 sdk编程(API)

    好几章的实例 windows下的窗口创建 子控件编辑 图像与文字的编写

    Visual C++2010开发权威指南(共三部分).part1.rar

    5.4.14 列表控件的风格选项及表头设置 210 5.4.15 销毁列表控件 210 5.5 Visual C++ 2010 Edit控件简介与开发 211 5.6 Visual C++ 2010 Rich Edit控件简介与开发 213 5.6.1 Rich Edit控件中的字符格式 215 5.6.2 ...

    精通WindowsAPI 函数 接口 编程实例

    3.2.4 Windows Vista SDK 48 3.3 编写Makefile 48 3.3.1 使用nmake.exe构建工程 48 3.3.2 Makefile实例 50 3.3.3 注释 50 3.3.4 宏 50 3.3.5 描述块:目标、依赖项和命令 53 3.3.6 makefile预处理 ...

    精通Windows.API-函数、接口、编程实例.pdf

    3.2.4 Windows Vista SDK 48 3.3 编写Makefile 48 3.3.1 使用nmake.exe构建工程 48 3.3.2 Makefile实例 50 3.3.3 注释 50 3.3.4 宏 50 3.3.5 描述块:目标、依赖项和命令 53 3.3.6 makefile预处理 ...

    MFC的程序框架剖析

    一个句柄是指使用的一个唯一的整数值,即一个4字节(64位程序中为8字节)长的数值,来标识应用程序中的不同对象和同类对象中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。...

    VC学习大纲 VC学习讲义

    标记菜单的实现原理、图形菜单的实现及常犯错误的分析,GetSystemMetrics的应用,快捷弹出菜单的实现方式及其命令响应函数有效范围(与弹出菜单时所指定的父窗口有密切的关系,最底层的子窗口具有最优先的处理机会)...

    vc++ 应用源码包_1

    VC 透明窗口效果的电子标尺源代码 实现了屏幕绘图操作,实现电子标尺数据计算以及显示,有数据库操作保存数据。 VC++ ini文件读写操作类实例 VC++版源代码统计工具 内含自绘CMenu、CButton、CDialog、CStatic、...

    vc++ 应用源码包_2

    VC 透明窗口效果的电子标尺源代码 实现了屏幕绘图操作,实现电子标尺数据计算以及显示,有数据库操作保存数据。 VC++ ini文件读写操作类实例 VC++版源代码统计工具 内含自绘CMenu、CButton、CDialog、CStatic、...

    vc++ 应用源码包_3

    VC 透明窗口效果的电子标尺源代码 实现了屏幕绘图操作,实现电子标尺数据计算以及显示,有数据库操作保存数据。 VC++ ini文件读写操作类实例 VC++版源代码统计工具 内含自绘CMenu、CButton、CDialog、CStatic、...

    vc++ 应用源码包_6

    VC 透明窗口效果的电子标尺源代码 实现了屏幕绘图操作,实现电子标尺数据计算以及显示,有数据库操作保存数据。 VC++ ini文件读写操作类实例 VC++版源代码统计工具 内含自绘CMenu、CButton、CDialog、CStatic、...

Global site tag (gtag.js) - Google Analytics