VC realize the transparent windows
但是有个函数可以轻松实现,就是SetLayeredWindowAttributes, 运用这个函数便可轻松实现窗口透明效果。
简单介绍一下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.
其中dwFlags有LWA_ALPHA和LWA_COLORKEY。LWA_ALPHA被设置的话,通过bAlpha决定透明度,LWA_COLORKEY被设置的话,则指定被透明掉的颜色为crKey,其他颜色则正常显示。
注意:要使使窗体拥有透明效果,首先要有WS_EX_LAYERED扩展属性。
实现代码:
SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,
GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0×80000);
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);
}
上面的一段代码加入到OnInitDialog()函数中,便可初始化窗口为半透明了,若想改变透明度,只要修改第三个参数便可,范围为0~255。
转载于:https://www.cnblogs.com/CBDoctor/archive/2012/12/30/2839949.html
VC realize the transparent windows相关推荐
- Transparent Windows in WPF
转自 http://blogs.msdn.com/b/dwayneneed/archive/2008/09/08/transparent-windows-in-wpf.aspx Introductio ...
- VC串口通信(Windows API)
本文转载自基于Windows API的VC++串口通信详解,以下附上大白的理解. 简介 在Win32下,可以使用两种编程方式实现串口通信,其一是使用ActiveX控件,这种方法程序简单,但欠灵活.其二 ...
- vc 下编写的 Windows窗口小程序 计算机
对于一个Windows窗口计算器小程序 解释 #include "stdafx.h" #include <windows.h> #include <windows ...
- 用VC写Assembly代码(6)--附录2[windows进程中的内存结构]
在阅读本文之前,如果你连堆栈是什么多不知道的话,请先阅读文章后面的基础知识. 接触过编程的人都知道,高级语言都能通过变量名来访问内存中的数据.那么这些变量在内存中是如何存放的呢?程序又是如何使用这些变 ...
- MFC 利用小型数据库Access 少步惆 教你用VC开发
目录(?)[+] 情境一 面向对象基础应用 任务类的声明及成员的访问控制 任务构造函数和析构函数的应用 任务成员函数的应用 任务继承性的作用 任务函数的重载的应用 任务虚函数的使用 任务 ...
- [转载]安装openssl,windows版
解压OpenSSL以后, 在其目录下可以发现有个INSTALL.W32文件,这个文件就是在windows下的安装说明.你可以用UltraEdit打开它 . 1.安装perl,perl可以从http:/ ...
- vc++实现avi文件的操作 用于视频解析及录制(转)
vc++实现avi文件的操作 为了对avi进行读写,微软提供了一套API,总共50个函数,他们的用途主要有两类,一个是avi文件的操作,一类是数据流streams的操作. 1.打开和关闭文件 AVIF ...
- VC++调试程序、快捷键以及Debug版本与Release版本
1.如何在Release状态下进行调试 Project->Setting=>ProjectSetting对话框,选择Release状态.C/C++标签中的Category选General, ...
- VC++网络资源集合
http://www.jizhuomi.com/software/257.html 第一部分:VS2010/MFC开发环境 第二部分:VS2010/MFC应用程序框架 第三部分 ...
最新文章
- php完美实现下载远程图片保存到本地(保存微信头像)
- 如何选择MBA教育 读MBA前必答10个问题
- 面向对象、继承、抽象方法重载知识点整理
- c++和python有联系吗_Python和C++交互
- 为什么要先装IIS后装.Net Framework?
- 二维码_encode与decode
- IOS 支付宝支付开发流程
- 191029_中国地震局爬取
- C++中在使用自定义类型(结构体类型)的stl数据结构时,operate的用法
- 正确激活报表插件的方法
- app开发的三大技术框架
- 用c语言编程质数和合数,《质数和合数》教学设计
- hdu 2087 剪花布条 kmp小水
- oracle12c 开启em,Oracle12C的EM无法访问怎么办?
- 数据分析-思维分析逻辑day02
- openwrt on MT7688 wifi启动方法
- ac9260网卡linux,160Mhz频宽的怒吼,Intel Wireless-AC 9260 无线网卡评测
- clock jitter和clock skew
- 《微信小程序》微信小程序用java后台连接数据库进行操作。
- Day19(JavaSE基础结束)