В Windows 7 с темой Aero окно « Настройки» в Notepad ++ имеет квадратные углы, значок системного меню отсутствует, кнопку закрытия и более темную 1px
границу. Это окно также имеет AlwaysOnTop
атрибут.
(Я изменил размер окна, чтобы соответствовать ширине 640px
.)
Интересно, что вы можете скопировать этот стиль в другие окна, используя AutoHotkey . Таким образом, казалось бы, что здесь нет грязных уловок. Тем не менее, я не думаю, что видел этот стиль окна где-либо еще.
Использует ли этот стиль Microsoft? У этого типа окна есть имя?
Для любопытных: Нормальный против "Квадрат"
Ответы:
Это называется окно инструментов (панель) . Любые окна, которые имеют
WS_EX_TOOLWINDOW
расширенный стиль, будут отображаться без системного меню или блоков минимизации / максимизации и небольшой заголовка. В Windows XP и более поздних версиях (которые поддерживают темы) окна инструментов обычно отображаются без закругленных углов (по крайней мере, с темами по умолчанию).Этот стиль обычно используется для панелей инструментов (рисунок 1). Вы можете увидеть это, перетащив панель инструментов из программы, которая позволяет вам переставить панели инструментов. Обратите внимание, что оно становится окном, похожим на рассматриваемое. Проводник Windows также использует его для настольных лент (рисунок 2), которые в основном то же самое. Это можно увидеть, перетащив папку к одному из краев экрана, а затем перетащив получившуюся панель инструментов / рабочий стол на рабочий стол.
Очевидно, что некоторые программы используют этот стиль для других целей, часто как способ создания своего рода временного временного диалога, который является дочерним по отношению к основной программе.
Примечание: это имеет несколько эффектов (первые два из которых обычно являются причинами его нестандартного использования):
Рисунок 1: Окно панели инструментов MSPaint
Рисунок 2: Настольная панель Windows Explorer
источник
Alt
+PrintScreen
захватывает только диалог в Windows 7 с диалогом настроек Notepad ++.Это детализирует название этого стиля окна и параметры, доступные в .NET; см. отличный ответ @ Synetech о первоначальной цели этого стиля окна, причинах его использования для такого диалогового окна и реализации в неуправляемых программах Windows, таких как Notepad ++.
Окно имеет квадратные углы и выглядит так, потому что один из дизайнеров / программистов Notepad ++ решил использовать определенный стиль окна. Synetech подробно описывает преимущества этого стиля окна.
В .NET / Visual Studio это устанавливается в
FormBorderStyle
свойствеSystem.Windows.Forms.Form
класса. В частности, этоFixedToolWindow
. Возможные значения вSystem.Windows.Forms.FormBorderStyle
перечислении.В
ToolWindow
.NET со всеми значениями по умолчанию работают немного иначе, чемWS_EX_TOOLWINDOW
в Windows API, хотя они выглядят одинаково. При тестировании, я определил , что они действительно появляются на панели задач , и они действительно появляются на Alt+ Tabпереключателе задач , если свойство формыShowInTaskbar
не установленоfalse
.ShowInTaskbar
влияет на видимость как на панели задач, так и на Alt+ TabдляToolWindow
s, но только на панель задач для других.Между тем, также возможно удалить значки / свернуть / восстановить / развернуть кнопки из более распространенных стилей окна, хотя кажется невозможным добавить их в
ToolWindow
s. Также можно скрыть обычные окна из панели задач.WS_EX_TOOLWINDOW
Насколько я могу судить, единственным функциональным преимуществом является то, что окно не появляется в Alt+ Tab.Я включил несколько скриншотов, сравнивающих стили окон .NET. Они не используются непосредственно Notepad ++ и другими неуправляемыми программами, но называются Microsoft, поэтому ...
Возможные значения
FormBorderStyle
:Первое изображение - это скриншот работающей программы с включенной Aero, второе - из конструктора Visual Studio (без Aero).
Нажмите на изображения для полной версии.
Описания взяты из статьи MSDN на
FormBorderStyle
перечисление.None
FixedSingle
Fixed3D
FixedDialog
Sizable
(дефолт)FixedToolWindow
SizableToolWindow
источник
WS_EX_TOOLWINDOW
стилем. .NET просто псевдонимыFixedToolWindow
вWS_EX_TOOLWINDOW
иSizableToolWindow
кWS_EX_TOOLWINDOW|WS_THICKFRAME
. Без обид, но этот ответ на самом деле не отвечает на вопрос и не объясняет заданного поведения, это просто список / ресурс различных стилей окон, используемых в .NET.Does this type of window have a name?
Он так много отвечает, по крайней мере, с точки зрения программиста .NET. А объяснение? Потому что программисту хотелось его использовать. Вы перечислили возможные эффекты. Вот и все. Будь то рекомендовано или осуждено MS, я понятия не имею. Лично я думаю, что вы проделали замечательную работу, объясняя это.