`
testcs_dn
  • 浏览: 113906 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

LWA_COLORKEY undeclared identifier 的解决办法

 
阅读更多
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,129,2); 
				fun(this->GetSafeHwnd(),GetSysColor(COLOR_BTNFACE), 129, LWA_COLORKEY); 
		   }
		   
		   FreeLibrary(hInst); 
	}


使用以上方法实现半透明窗口时,

编译时输出如下:

error C2065: 'LWA_COLORKEY' : undeclared identifier

明明引入了相关的头文件:#include "WinUser.h",怎么还会提示'LWA_COLORKEY'未定义呢?

查看头文件件中的定义发现,是条件定义的问题;

在:#include "WinUser.h"之前添加:#define _WIN32_WINNT 0x0502

问题解决;

分享到:
评论

相关推荐

    模拟登录画面,全屏遮罩

    SetLayeredWindowAttributes // crKey为颜色值, // bAlpha是透明度,取值... // 当取值为LWA_COLORKEY时,bAlpha参数有效而窗体中的所有颜色为crKey的地方将变为透明。 // LWA_ALPHA = 0x2 // LWA_COLORKEY=0x1

    透明窗体透明控件

    Private Const LWA_COLORKEY = &H1; Private Sub asPopup1_Click(Cancel As Boolean) If Text1.BackColor = vbBlue Then Text1.BackColor = vbWhite Else Text1.BackColor = vbBlue End If End Sub ...

    vb编写的窗体透明代码

    值得注意的是,颜色键透明方式(LWA_COLORKEY)会将指定的颜色设为透明,如果窗体背景颜色发生变化,需要同步更新颜色键。而LWA_ALPHA则可以设置整体的alpha通道透明度,更加灵活。 在提供的压缩包文件“自己做透明...

    透明窗体的又一实现1

    描述中提到的代码行“SetLayeredWindowAttributes(GetSafeHwnd(), maskColor, 255, LWA_COLORKEY)”是Windows API中用于设置窗口透明度的关键函数。 `SetLayeredWindowAttributes`函数是Windows API提供的一种方法...

    VC6 Transparent Dialog

    SetLayeredWindowAttributes(m_TransColor, 255, LWA_COLORKEY | LWA_ALPHA); // 其中,255表示不透明,0表示完全透明 // m_TransColor是设定的透明色,Windows会将此颜色视为透明处理 // LWA_COLORKEY用于设置...

    VB 透明窗体

    Call SetLayeredWindowAttributes(hWnd, RGB(255, 255, 255), 0, LWA_COLORKEY Or LWA_ALPHA) End Sub Private Sub Form_Paint() ' 阻止VB绘制背景 Dim hDC As Long hDC = GetDC(Me.hWnd) Call FillRect(hDC, ...

    透明度的问题

    它接受四个参数:窗口句柄(HWND)、颜色键(COLORREF)、透明度值(BYTE)和混合模式(LWA_COLORKEY | LWA_ALPHA)。颜色键用于指定窗口中应被视为透明的颜色,而透明度值是一个介于0和255之间的字节,其中0表示...

    半透明设置(VB6.0代码编写)

    半透明设置代码:SetLayeredWindowAttributes Me.hwnd, 0, 255, LWA_ALPHA '注释:把窗体设置成半透明样式,第二个参数表示透明程度' '注释:取值范围0 --255, 为0时就是一个全透明的窗体了 QQ223857666勾月

    vb半透明窗体设计

    - `crKey`:颜色键值,当`dwFlags`包含`LWA_COLORKEY`时有效,表示指定颜色的像素将被视作透明。 - `bAlpha`:alpha值(0-255),控制透明度。0表示完全透明,255表示完全不透明。 - `dwFlags`:标志位,指定要修改...

    vc_便签_便签_便签程序代码_Vc_

    LWA_COLORKEY 表示使用颜色键进行透明处理,而 LWA_ALPHA 表示使用alpha通道设定透明度。 【便签程序核心组件】 在VC++中构建一个便签程序,一般会包含以下几个关键组件: 1. 文本编辑器控件:可以使用RichEdit...

    透明窗体的又一实现

    这里的RGB(0, 0, 255)是颜色键,128是Alpha值,LWA_COLORKEY表示指定颜色为透明,LWA_ALPHA表示使用Alpha通道设定透明度。 4. 如果需要动态改变透明度,可以再次调用`SetLayeredWindowAttributes`,更新Alpha值。 ...

    vb 透明窗口边框

    例如,`WS_EX_LAYERED`是表示窗口具有层叠窗口扩展样式,而`LWA_COLORKEY`或`LWA_ALPHA`用于设置透明方式。 3. **获取窗口句柄**:使用`FindWindow`或`CreateWindowEx`函数获取或创建窗体的句柄,这是API调用的基础...

    MFC对话框里利用CHtmlView加载界面(四)————分层窗口设置 - CSDN博客1

    这通常通过`SetLayeredWindowAttributes`函数完成,例如`::SetLayeredWindowAttributes(GetSafeHwnd(), RGB(255, 0, 255), 255, LWA_COLORKEY)`。这里的`RGB(255, 0, 255)`代表了指定的颜色键,通常选择一种不会出现...

    页游浏览工具源码

    private const int LWA_COLORKEY = 0x1; public const int WS_EX_TRANSPARENT = 0x20; //窗口透眀 public const int WS_EX_LAYERED = 0x80000; //窗口具有透眀属性(Win2000)以上 public const int WS_EX_...

    透明窗体,可以实现窗体背景的透明

    SetLayeredWindowAttributes(hwnd, RGB(0, 0, 0), 0, LWA_COLORKEY | LWA_ALPHA); ``` 4. **颜色键(Color Keying)**:如果你希望窗体的特定颜色区域透明,可以设置颜色键。例如,设置背景色为纯白色(RGB(255, ...

    透明窗体的实现

    - `crKey`:指定颜色键,如果设置了`LWA_COLORKEY`标志,那么与该颜色匹配的像素将变得透明。 - `bAlpha`:用于设置窗口的透明度,取值范围为0到255,0表示完全透明,255表示完全不透明。 - `dwFlags`:操作标志,...

    vc++半透明窗体的实现

    SetLayeredWindowAttributes(hwnd, RGB(255, 255, 255), 128, LWA_COLORKEY | LWA_ALPHA); // 设置颜色键和透明度 DeleteObject(hBrush); // 删除画刷 ``` 这里的RGB(255, 255, 255)是颜色关键值,意味着窗口上所有...

    VC++实现透明窗体

    - 使用`LWA_COLORKEY`和`WS_EX_LAYERED`标志设置窗口的透明模式,其中`LWA_COLORKEY`用于指定掩码颜色,`WS_EX_LAYERED`则启用层叠窗口样式。 3. 调用`SetLayeredWindowAttributes`函数: - 传入窗口句柄`hwnd`、...

    窗体透明的几种实现方案

    在VB6中,通过`SetLayeredWindowAttributes`函数,结合`LWA_COLORKEY`常量,可以实现特定颜色的透明。例如,使窗体背景色为蓝色透明: ```vb Private Sub Form_Load() Me.BackColor = vbBlue ...

    VC中对话框窗体背景透明而控件不透明

    SetLayeredWindowAttributes(m_hWnd, RGB(255, 255, 255), 0, LWA_COLORKEY); ``` 这里的 RGB(255, 255, 255) 是颜色键,指定对话框的背景色为透明。0 表示不改变透明度,LWA_COLORKEY 指定使用颜色键透明。 2....

Global site tag (gtag.js) - Google Analytics