首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

[win32]怎么让窗口始终保持桌面最底层,且不会受到鼠标单击影响?

2012-03-18 
[win32]如何让窗口始终保持桌面最底层,且不会受到鼠标单击影响??我用:::SetWindowPos(g_hWnd, HWND_BOTTOM

[win32]如何让窗口始终保持桌面最底层,且不会受到鼠标单击影响??
我用:::SetWindowPos(g_hWnd, HWND_BOTTOM, 0, 0, WND_WIDTH, WND_HEIGHT, SWP_NOSIZE|SWP_NOMOVE);好像不行,鼠标单击后,仍然会遮住其他窗口。

怎么设置?

[解决办法]
设成不可激活状态
[解决办法]

C/C++ code
  HWND hParent = ::FindWindow(_T("Progman"), NULL);  if(hParent == NULL)    hParent = ::GetDesktopWindow();  if(hParent)  {    ::SetParent(GetSafeHwnd(), hParent);  }
[解决办法]
响应WM_ACTIVE,将枚举得到窗口置于其上,
[解决办法]
#define _WIN32_WINNT 0x0500
#include <Windows.h>
int main()
{

SetParent(FindWindowW(L"Notepad",0),GetShellWindow());
return 0;
}
把记事本放最底下
[解决办法]
最底层可以把桌面设为它的父窗口,不响应鼠标事件可以
LONG dwNewLong = GetWindowLong(m_hWnd, GWL_EXSTYLE);
dwNewLong |= WS_EX_TRANSPARENT |WS_EX_LAYERED;
SetWindowLong(m_hWnd, GWL_EXSTYLE, dwNewLong);
把窗口设置成鼠票透明
[解决办法]
hook桌面窗口。把windows桌面窗口个性化成你的窗口。关于hook技术可以查看《windows核心编程》
hook技术比较麻烦地方在于一是自身相对复杂,二是容易触发防病毒软件,而且windows不同版本下代码可能不同。
[解决办法]
你想做个类似WIN7上日历等得控件?

热点排行