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 ...
值得注意的是,颜色键透明方式(LWA_COLORKEY)会将指定的颜色设为透明,如果窗体背景颜色发生变化,需要同步更新颜色键。而LWA_ALPHA则可以设置整体的alpha通道透明度,更加灵活。 在提供的压缩包文件“自己做透明...
描述中提到的代码行“SetLayeredWindowAttributes(GetSafeHwnd(), maskColor, 255, LWA_COLORKEY)”是Windows API中用于设置窗口透明度的关键函数。 `SetLayeredWindowAttributes`函数是Windows API提供的一种方法...
SetLayeredWindowAttributes(m_TransColor, 255, LWA_COLORKEY | LWA_ALPHA); // 其中,255表示不透明,0表示完全透明 // m_TransColor是设定的透明色,Windows会将此颜色视为透明处理 // LWA_COLORKEY用于设置...
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表示...
半透明设置代码:SetLayeredWindowAttributes Me.hwnd, 0, 255, LWA_ALPHA '注释:把窗体设置成半透明样式,第二个参数表示透明程度' '注释:取值范围0 --255, 为0时就是一个全透明的窗体了 QQ223857666勾月
- `crKey`:颜色键值,当`dwFlags`包含`LWA_COLORKEY`时有效,表示指定颜色的像素将被视作透明。 - `bAlpha`:alpha值(0-255),控制透明度。0表示完全透明,255表示完全不透明。 - `dwFlags`:标志位,指定要修改...
LWA_COLORKEY 表示使用颜色键进行透明处理,而 LWA_ALPHA 表示使用alpha通道设定透明度。 【便签程序核心组件】 在VC++中构建一个便签程序,一般会包含以下几个关键组件: 1. 文本编辑器控件:可以使用RichEdit...
这里的RGB(0, 0, 255)是颜色键,128是Alpha值,LWA_COLORKEY表示指定颜色为透明,LWA_ALPHA表示使用Alpha通道设定透明度。 4. 如果需要动态改变透明度,可以再次调用`SetLayeredWindowAttributes`,更新Alpha值。 ...
例如,`WS_EX_LAYERED`是表示窗口具有层叠窗口扩展样式,而`LWA_COLORKEY`或`LWA_ALPHA`用于设置透明方式。 3. **获取窗口句柄**:使用`FindWindow`或`CreateWindowEx`函数获取或创建窗体的句柄,这是API调用的基础...
这通常通过`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`:操作标志,...
SetLayeredWindowAttributes(hwnd, RGB(255, 255, 255), 128, LWA_COLORKEY | LWA_ALPHA); // 设置颜色键和透明度 DeleteObject(hBrush); // 删除画刷 ``` 这里的RGB(255, 255, 255)是颜色关键值,意味着窗口上所有...
- 使用`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 ...
SetLayeredWindowAttributes(m_hWnd, RGB(255, 255, 255), 0, LWA_COLORKEY); ``` 这里的 RGB(255, 255, 255) 是颜色键,指定对话框的背景色为透明。0 表示不改变透明度,LWA_COLORKEY 指定使用颜色键透明。 2....