文档章节

WinAPI: SetLayeredWindowAttributes - 设置窗口的透明

涂孟超
 涂孟超
发布于 2014/09/26 15:38
字数 215
阅读 6
收藏 0
这是来宾 Dolby 在 http://www.cnblogs.com/del/archive/2008/03/08/1081295.html#1096814 询问的问题.
//声明:
SetLayeredWindowAttributes(
  Hwnd: THandle;   {窗口句柄}
  crKey: COLORREF; {透明色}
  bAlpha: Byte;    {Alpha 值}
  dwFlags: DWORD   {LWA_COLORKEY(=1)表示使用透明色; LWA_ALPHA(=2)表示使用 Alpha 值}
): Boolean;        {是否成功设置}

 
 
 
 
 

 

 

  
//举例(控制外部程序的透明度, 用计算器举了个例子): unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} {设定计算器的 Alpha 透明} procedure TForm1.Button1Click(Sender: TObject); var h: HWND; FormStyle: Integer; begin h := FindWindow('SciCalc', nil); FormStyle := GetWindowLong(h, GWL_EXSTYLE); SetWindowLong(h, GWL_EXSTYLE, FormStyle or WS_EX_LAYERED); SetLayeredWindowAttributes(h, 0, 128, LWA_ALPHA); end; {设定计算器中的白色透明} procedure TForm1.Button2Click(Sender: TObject); var h: HWND; FormStyle: Integer; begin h := FindWindow('SciCalc', nil); FormStyle := GetWindowLong(h, GWL_EXSTYLE); SetWindowLong(h, GWL_EXSTYLE, FormStyle or WS_EX_LAYERED); SetLayeredWindowAttributes(h, clWhite, 255, LWA_COLORKEY); end; end.

本文转载自:http://www.cnblogs.com/del/archive/2008/03/08/1096874.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2011
码字总数 14107
作品 0
深圳
程序员
私信 提问
VC6.0使用 SetLayeredWindowAttributes函数

USER32.DLL SetLayeredWindowAttributes函数 SetLayeredWindowAttributes函数: hwnd是透明窗体的句柄, crKey为颜色值, bAlpha是透明度,取值范围是[0,255], dwFlags是透明方式,可以取两个...

IMGTN
2012/06/13
0
0
使窗口实现“淡入淡出”效果(非原创)

使窗口逐渐浮现,退出时逐渐消失,这主要是通过设置增强窗口样式为图层窗口,然后设置窗口的alpha值来实现的。在c#中,对应的是Form.Opacity属性。这是老外的一篇帖子里面提到的,但我对代码...

hoodlum1980
2008/01/30
0
0
透明框架窗口

如何让整个窗口具有透明效果呢? 使用如下的类: // class CLayeredImpl // Layered Window template class ATL_NO_VTABLE CLayeredImpl { public : HMODULE m_hUser32LWA; CLayeredImpl() ......

长平狐
2012/08/28
140
0
设置对话框的背景颜色及设置透明

现说设置背景颜色。 我用了很多方法都不行,查了很多资料,现在说一下解决方案吧。 在XXXXXXDlg.头文件的protected:中加入CBrush m_brush; 在XXXXXXDlg.cpp文件中的OnInitDialog()初始化函数...

霄霄月月
2012/05/08
0
0
SetLayeredWindowAttributes 设置窗口透明

#ifndef ROPWINDOWH_ define ROPWINDOWH_ include "stdafx.h" class RopWindow : public CWindowImpl<RopWindow>{public:DECLAREWNDCLASS("rop widnow") BEGINMSGMAP(theClass)MESSAGEHANDLE......

小熊猫大暴走
2013/02/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Eos如何删除钱包

在使用Eos的keosd钱包软件时,如果要删除EOS中指定名称的钱包,最简单的办法是直接删除钱包文件,不过在删除钱包之前,需要先停止钱包软件的运行。 学习EOS应用开发要选这个:【EOS智能合约与...

geek12345
2分钟前
0
0
js操作时间

获取当前时间 function getSystemDate(){ var systemDate = new Date(); // 获取当年 var year = systemDate.getFullYear(); // 获取当月 (月+1是因为js中......

简心
9分钟前
0
0
区块链开发教程推荐

区块链的重要性已经毋庸置疑,但对大多数跃跃欲试的开发者而言,去中心化思想、非对称加密、共识算法等技术点的理解和运用,都是入门区块链开发的挑战。合适的区块链开发教程可以极大地缩短区...

笔阁
9分钟前
0
0
菜单menuView总结

1、FTPopOverMenu

_____1____
20分钟前
2
0
MyEclipse教程:Web开发——部署和测试Web项目

MyEclipse 在线订购年终抄底促销!火爆开抢>> MyEclipse最新版下载 本教程向用户展示了使用关联的Web项目创建Web片段项目的机制。用户还可以获得要检查的示例项目。在本教程中,用户将学习如...

电池盒
36分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部