[win32]怎么让窗口始终保持桌面最底层,且不会受到鼠标单击影响?
[win32]如何让窗口始终保持桌面最底层,且不会受到鼠标单击影响??
我用:::SetWindowPos(g_hWnd, HWND_BOTTOM, 0, 0, WND_WIDTH, WND_HEIGHT, SWP_NOSIZE|SWP_NOMOVE);好像不行,鼠标单击后,仍然会遮住其他窗口。
怎么设置?
------解决方案--------------------
设成不可激活状态
------解决方案--------------------
我用:::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上日历等得控件?