有没有人知道如何制作一个"永远在底"的窗户,或者固定在桌面上的窗户?它应该接收焦点和鼠标点击,但应该保持在Z顺序的底部.即使用户最小化全部或显示桌面操作,它也可以保留在桌面上.
delphi和c#解决方案(或部分解决方案/提示)都会很棒.
Mau*_*gan 12
警告建议您可以通过调用SetParent并将窗口设置为桌面的子项来完成此操作.如果你这样做,你会在Win32窗口管理器到桌面的输入队列相结合,你的子窗口,这是一个糟糕的事情 - 雷蒙德陈解释了原因.
另外,请记住,使用HWND_BOTTOM调用SetWindowPos是不完整的.每当窗口改变zorder时,您都需要这样做.处理WM_WINDOWPOSCHANGING事件,查看SWP_NOZORDER以获取更多信息.
SetWindowPos可以使Windows AlwaysOnTop.很可能它会产生相反的结果.尝试这些方面:
[DllImport("user32.dll")]
static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X,
int Y, int cx, int cy, uint uFlags);
public const uint SWP_NOSIZE = 0x0001;
public const uint SWP_NOMOVE = 0x0002;
public const uint SWP_NOACTIVATE = 0x0010;
public const int HWND_BOTTOM = 1;
SetWindowPos(hWnd, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE | SWP_NOACTIVATE);
Run Code Online (Sandbox Code Playgroud)
注意:
编辑:完成一些搜索沿着这些线来确认它是否会发挥作用,并找到一些有趣的东西 - 重复.
| 归档时间: |
|
| 查看次数: |
8991 次 |
| 最近记录: |