Максимизация окон под моей формой - PullRequest
2 голосов
/ 24 марта 2011

У меня есть панель инструментов, которая всегда находится сверху (topmost = true), но когда я максимизирую другие программы, верхняя часть их окон скрывается за ней. Я хочу, чтобы они максимизировали, ПРОДОЛЖАЙТЕ мою панель инструментов, чтобы я мог закрыть / свернуть их и т. Д. Как перевернутая панель задач, буквально меняющая рабочую область экрана ...

Возможно ли это? Я видел, как это было сделано в "Cairo Shell"

Ответы [ 2 ]

1 голос
/ 24 марта 2011

Если вы хотите зарезервировать область на рабочем столе для своей программы и сделать так, чтобы все другие программы не использовали эту область при развертывании, вы должны зарегистрировать свое приложение в списке панелей Windows с помощью API SHAppBarMessage

Я не нашел ни одного хорошего кода для этого в .Net, но, если вы воспользуетесь Google, возможно, вам повезет.

Вот один из них: http://www.tek -tips.com / viewthread.cfm? QID = 1202570 & страница = 1

1 голос
/ 24 марта 2011

Я не думаю, что вы достигли, используя свойство TopMost формы.Вместо этого вам может понадобиться использовать SetWindowPos () WIN32 API call

[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);
...