Как нарисовать панель инструментов в заголовке окна Winforms C# в Windows Vista? У меня есть окно, в котором он работает, за исключением случаев, когда окно не минимизировано / не максимизировано, оно увеличивается в размере примерно на 16x32 пикселей. Если возможно, приведите примеры кода.





Единственный способ эффективно сделать это - обработать сообщение WM_NCPAINT при переопределении метода WndProc для формы.
Переход к базовой реализации WndProc приведет к отрисовке фрейма окна, но в этот момент вы будете ответственны за рисование элементов панели инструментов в строке заголовка.
Вы также захотите обрабатывать все другие сообщения WM_NC *, что позволит вам обрабатывать нажатия кнопок и тому подобное (которые вам понадобятся для обработки событий для ваших нарисованных элементов управления).
Я искал ту же проблему, потому что хотел закодировать ленточную панель с этой большой кнопкой в верхнем левом углу ... Единственным хорошим источником, который я нашел, был в CodeProject на этот блог, Вот этот и Еще один.
Возможно, вам придется вручную сбросить размер формы, чтобы преодолеть это.
Я смотрел на них и использую один из codeproject.com/KB/dialog/AeroNonClientAreaButtons.aspx, но у меня проблемы с размером окна, расширяющимся каждый раз, когда оно не минимизируется / не максимизируется.