我有一个总是在顶部的工具栏(topmost = true)但是当我最大化其他程序时,他们的窗口的顶部隐藏在它后面。我希望他们最大限度地利用我的工具栏,这样我就可以关闭/最小化它们......就像一个倒置的任务栏,直接改变屏幕工作区......
这可能吗?我在“开罗壳牌”中看到过它。
答案 0 :(得分:1)
我认为你不能通过使用Form的TopMost属性来实现。相反,您可能需要使用SetWindowPos()WIN32 API调用
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, SetWindowPosFlags uFlags);
static readonly IntPtr HWND_TOPMOST = new IntPtr(-1);
答案 1 :(得分:1)
如果您想在桌面上为您的程序预留一个区域,并且在最大化时让所有其他程序不使用该区域,那么您必须使用API SHAppBarMessage 将您的应用注册到Window的appbar列表
我还没有在.Net中找到任何好的代码,但是如果你google它可能你会很幸运。
这是一个: http://www.tek-tips.com/viewthread.cfm?qid=1202570&page=1