VC实现对话框窗口指定颜色透明
2011-02-15 11:13
525 查看
#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,0,0); HMODULE hUser32 = GetModuleHandle("user32.dll"); //加载动态链接库 SetLayeredWindowAttributes = (lpfnSetLayeredWindowAttributes)GetProcAddress(hUser32,"SetLayeredWindowAttributes"); //取得SetLayeredWindowAttributes函数指针 //为窗口加入WS_EX_LAYERED扩展属性 SetWindowLong(this->GetSafeHwnd(), GWL_EXSTYLE, GetWindowLong(GetSafeHwnd(), GWL_EXSTYLE)^WS_EX_LAYERED); //调用SetLayeredWinowAttributes函数 SetLayeredWindowAttributes(this->GetSafeHwnd(), maskColor, 192, LWA_COLORKEY); //释放动态链接库 FreeLibrary(hUser32);
以上代码加入OnInitDialog()中,其中SetLayeredWindowAttributes(this->GetSafeHwnd(), maskColor, 192, LWA_COLORKEY);里,maskColor为将进行透明处理的颜色, 192为透明度, LWA_COLORKEY为透明方式。
若要透明整个对话框,则LWA_COLORKEY=2;
若要对选定颜色透明,则LWA_COLORKEY=1;
相关文章推荐
- 【VC++】 实现对话框透明显示
- C++ VC实现对话框窗口任意分割
- VC实现顶层窗口的透明与实现子窗口的透明【重点:子窗口透明处理】
- VC实现对话框窗口任意分割
- VC实现对话框窗口任意分割
- VC实现鼠标移动对话框窗口
- VC如何实现透明窗口
- VC++ 实现整个对话框透明的效果SetLayeredWindowAttributes
- VC如何实现透明窗口
- vc中改变对话框以及视类窗口的颜色
- VC实现 鼠标在对话框外点击关闭窗口
- MFC对话框简单实现窗口全透明的方法
- VC实现对话框窗口任意分割
- vc 实现透明窗口和不规则窗口
- VC实现对话框窗口任意分割
- VC中实现不规则对话框(窗口)
- VC透明窗口实现
- VC实现对话框窗口任意分割
- VC实现透明图的闪屏对话框动画
- VC实现对话框客户区透明!