《MFC对话框简单实现窗口全透明的方法.docx》由会员分享,可在线阅读,更多相关《MFC对话框简单实现窗口全透明的方法.docx(3页珍藏版)》请在金锄头文库上搜索。
1、 MFC对话框简单实现窗口全透明的方法在Vista系统中利用dwapi.dll实现窗体全透亮的方法,在网上更多的资源是基于WTL或是C#,借此公布一下根本MFC对话框实现此此功能的最简洁的方法。本方法只是实现整个程序的窗口界面(包括客户区)呈现半透亮的效果,因此很简洁。编译及运行需要 Windows Vista 或者 Windows Server 2022 系统的支持并且需要开启透亮功能才能显示其效果。效果图改日回家附上。由于实现方法未包含系统检测,未作其它系统(即XP、200、98)的处理方式,在这些系统中运行会报错。实现方法:1、创立工程,翻开Visual Studio 2022 或者 V
2、isual Studio 2022 创立根本MFC的对话框程序,在例子中我采纳的工程名是VcAeroGlass。2、在stdafx.h中添加利用dwapi.dll的声明/stdafx.h#include#pragma comment(lib,“dwmapi“)3、在对话框实现文件VcAeroGlassDlg.cpp的初始函数OnInitDialog()中作如下添加:BOOL CVcAeroGlassDlg:OnInitDialog()CDialog:OnInitDialog();/./系统自动成,省略MARGINS mar;mar.cxLeftWidth = -1;mar.cxRightWid
3、th = -1;mar.cyTopHeight = -1;mar.cyBottomHeight =-1;CRect rectClient;GetClientRect (rectClient);mar.cyTopHeight = rectClient.Height ();DwmExtendFrameIntoClientArea (CDialog:GetSafeHwnd(),return TRUE;4、在实现文件的绘制函数OnPaint()中作考试大提示如下添加:void CVcAeroGlassDlg:OnPaint()CPaintDC dc(this); / 用于绘制的设备上下文CRect rcGlassArea;GetClientRect (dc.FillSolidRect (/./系统自动成,省略5、编译运行程序即可看到效果。源码以上传:For VC2022: http:/ VC2022SP1: http:/