急求透明度有关问题!
急求透明度问题!!~~~~
我绘制了一个区域将屏幕挡住,我现在想将这个区域设置成半透明的
请问如何做到?
多谢!~~~
------解决方案--------------------
窗口属性添加WS_EX_LAYERED标志,再调用SetLayeredWindowAttributes()。
------解决方案--------------------
以图片为透明界面,下面的方法只适用WINDOWS2000和XP系统:
在对话框初始化函数中加入:
#define LWA_COLORKEY 0x00000001
#define WS_EX_LAYERED 0x00080000
typedef BOOL (WINAPI *lpfnSetLayeredWindowAttributes)(HWND hWnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags);
lpfnSetLayeredWindowAttributes SetLayeredWindowAttributes;
//设置成边缘透明
COLORREF maskColor=RGB(0,255,0);
HMODULE hUser32 = GetModuleHandle( "user32.dll ");
SetLayeredWindowAttributes = (lpfnSetLayeredWindowAttributes)GetProcAddress(hUser32, "SetLayeredWindowAttributes ");
SetWindowLong(GetSafeHwnd(), GWL_EXSTYLE, GetWindowLong(GetSafeHwnd(), GWL_EXSTYLE) │ WS_EX_LAYERED);
SetLayeredWindowAttributes(GetSafeHwnd(), maskColor,200, LWA_COLORKEY);
FreeLibrary(hUser32);
200是透明度。
其中maskcolor是透明颜色,也就是说把什么颜色区域设置成透明
这是窗体的。
我绘制了一个区域将屏幕挡住,我现在想将这个区域设置成半透明的
请问如何做到?
多谢!~~~
------解决方案--------------------
窗口属性添加WS_EX_LAYERED标志,再调用SetLayeredWindowAttributes()。
------解决方案--------------------
以图片为透明界面,下面的方法只适用WINDOWS2000和XP系统:
在对话框初始化函数中加入:
#define LWA_COLORKEY 0x00000001
#define WS_EX_LAYERED 0x00080000
typedef BOOL (WINAPI *lpfnSetLayeredWindowAttributes)(HWND hWnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags);
lpfnSetLayeredWindowAttributes SetLayeredWindowAttributes;
//设置成边缘透明
COLORREF maskColor=RGB(0,255,0);
HMODULE hUser32 = GetModuleHandle( "user32.dll ");
SetLayeredWindowAttributes = (lpfnSetLayeredWindowAttributes)GetProcAddress(hUser32, "SetLayeredWindowAttributes ");
SetWindowLong(GetSafeHwnd(), GWL_EXSTYLE, GetWindowLong(GetSafeHwnd(), GWL_EXSTYLE) │ WS_EX_LAYERED);
SetLayeredWindowAttributes(GetSafeHwnd(), maskColor,200, LWA_COLORKEY);
FreeLibrary(hUser32);
200是透明度。
其中maskcolor是透明颜色,也就是说把什么颜色区域设置成透明
这是窗体的。