创建透明窗口及其应用--屏幕画笔
http://apps.hi.baidu.com/share/detail/24753345
示例代码下载:创建透明窗口(屏幕画笔).zip (请不要直接使用迅雷下载)
注:VC6 下编译通过
一、使窗口透明其实很简单。就是一个函数 SetLayeredWindowAttributes
步骤如下:
步骤一:让窗口具透明的特性
::SetWindowLong(m_hWnd,GWL_EXSTYLE, GetWindowLong(m_hWnd,GWL_EXSTYLE)|
WS_EX_LAYERED);
当你不希望窗口透明时,就使这个添加的属性去掉就可以了,如下:
//取消透明
::SetWindowLong(m_hWnd,GWL_EXSTYLE,
GetWindowLong(m_hWnd,GWL_EXSTYLE)& ~WS_EX_LAYERED);
当然,最后别忘记先定义 WS_EX_LAYERED,否则编译时会无法识别 WS_EX_LAYERED
#define WS_EX_LAYERED 0x00080000
步骤二:获得 SetLayeredWindowAttributes 函数
这个函数需要从 USER32.DLL 里获得,调用如下。
//获取模块里的函数
HINSTANCE hInst=GetModuleHandle(_T("USER32.DLL"));
BOOL (WINAPI *SetLayeredWindowAttributes)(HWND,COLORREF,BYTE,DWORD)=
(BOOL (WINAPI*)
评论5
最新资源