VC如何实现透明窗口

王朝vc·作者佚名  2006-01-29
窄屏简体版  字體: |||超大  

以图片为透明界面,下面的方法只适用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, 255, LWA_COLORKEY);

FreeLibrary(hUser32);

其中maskcolor是透明颜色,也就是说把什么颜色区域设置成透明

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航