Sur Windows 7 avec le thème Aero, la fenêtre Préférences de Notepad ++ a des coins carrés, pas d'icône de menu système, un bouton de fermeture et une 1px
bordure plus sombre . Cette fenêtre a également un AlwaysOnTop
attribut.
(J'ai redimensionné la fenêtre pour une largeur de 640px
.)
Chose intéressante, vous pouvez copier ce style dans d'autres fenêtres à l'aide d' AutoHotkey . Donc, il semblerait qu'il n'y ait pas de trucs sales impliqués. Cependant, je ne pense pas avoir vu ce style de fenêtre ailleurs.
L'utilisation de ce style est-elle condamnée par Microsoft? Ce type de fenêtre a-t-il un nom?
Pour les curieux: Normal vs "Square"
Réponses:
Cela s'appelle une fenêtre d'outils (barre) . Toutes les fenêtres qui ont le
WS_EX_TOOLWINDOW
style étendu seront rendues sans menu système ou minimiser / maximiser les zones et une petite barre de titre. Dans Windows XP et versions ultérieures (qui prennent en charge les thèmes), les fenêtres d'outils sont généralement rendues sans coins arrondis (au moins avec les thèmes par défaut).Ce style est généralement utilisé pour les barres d'outils (figure 1). Vous pouvez le voir en faisant glisser une barre d'outils hors d'un programme qui vous permet de réorganiser les barres d'outils. Notez que cela devient une fenêtre qui ressemble à celle en question. L'Explorateur Windows l'utilise également pour les bandes de bureau (figure 2) qui sont essentiellement la même chose. Vous pouvez les voir en faisant glisser un dossier vers l'un des bords de l'écran, puis faites glisser la barre d'outils / bande de bureau résultante vers le bureau.
Évidemment, certains programmes utilisent le style à d'autres fins, souvent comme un moyen de créer une sorte de dialogue modal et temporaire qui est un enfant du programme principal.
Remarque: cela a quelques effets (dont les deux premiers sont généralement les raisons de son utilisation non standard):
Figure 1: fenêtre de la barre d'outils MSPaint
Figure 2: bande de travail de l'Explorateur Windows
la source
Alt
+PrintScreen
capture uniquement la boîte de dialogue dans Windows 7 avec la boîte de dialogue Préférences Notepad ++.Cela détaille le nom de ce style de fenêtre et les options disponibles dans .NET; voir l'excellente réponse de @ Synetech pour l'objectif initial de ce style de fenêtre, les raisons pour lesquelles il peut être utilisé pour une telle boîte de dialogue et la mise en œuvre dans des programmes Windows non gérés tels que Notepad ++.
La fenêtre a des coins carrés et ressemble à cela car l'un des concepteurs / programmeurs de Notepad ++ a décidé d'utiliser un style de fenêtre spécifique. Synetech détaille les avantages de ce style de fenêtre.
Dans .NET / Visual Studio, cela est défini dans la
FormBorderStyle
propriété de laSystem.Windows.Forms.Form
classe. Plus précisément, c'est leFixedToolWindow
. Les valeurs possibles sont dans l'System.Windows.Forms.FormBorderStyle
énumération.Les
ToolWindow
s dans .NET avec toutes les valeurs par défaut fonctionnent un peu différemment d'un simpleWS_EX_TOOLWINDOW
dans l'API Windows, bien qu'ils se ressemblent. Avec les tests, j'ai déterminé qu'ils n'apparaissent dans la barre des tâches et ils n'apparaissent sur le + commutateur de tâche à moins que la propriété de formulaire est définie sur . affecte la visibilité à la fois dans la barre des tâches et + pour s, mais uniquement dans la barre des tâches pour les autres.AltTabShowInTaskbar
false
ShowInTaskbar
AltTabToolWindow
Pendant ce temps, il est également possible de supprimer les boutons icône / minimiser / restaurer / maximiser des styles de fenêtre les plus courants, bien qu'il ne semble pas possible de les ajouter à l'
ToolWindow
art. Il est également possible de masquer les fenêtres normales de la barre des tâches.Le seul avantage fonctionnel
WS_EX_TOOLWINDOW
offert, pour autant que je sache, est que la fenêtre n'apparaît pas dans Alt+ Tab.J'ai inclus quelques captures d'écran comparant les styles de fenêtre .NET. Ceux-ci ne sont pas directement utilisés par Notepad ++, ni par d'autres programmes non gérés, mais sont nommés par Microsoft, donc ...
Valeurs possibles de
FormBorderStyle
:La première image est une capture d'écran du programme en cours d'exécution avec Aero activé, la seconde provient de la vue du concepteur Visual Studio (pas Aero).
Cliquez sur les images pour les versions en taille réelle Les
descriptions sont extraites de l' article MSDN sur l'
FormBorderStyle
énumération.None
FixedSingle
Fixed3D
FixedDialog
Sizable
(défaut)FixedToolWindow
SizableToolWindow
la source
WS_EX_TOOLWINDOW
style. .NET alias simplementFixedToolWindow
toWS_EX_TOOLWINDOW
etSizableToolWindow
toWS_EX_TOOLWINDOW|WS_THICKFRAME
. Aucune infraction, mais cette réponse ne répond pas réellement à la question ou n'explique pas le comportement demandé, il s'agit simplement d'une liste / ressource de différents styles de fenêtre utilisés dans .NET.Does this type of window have a name?
Cela répond à cela, du moins du point de vue d'un programmeur .NET. Et l'explication? Parce que le programmeur avait envie de l'utiliser. Vous avez énuméré les effets éventuellement souhaités. C'est à peu près ça. Que ce soit recommandé ou condamné par la SEP, je n'en ai aucune idée. Personnellement, je pense que vous avez fait un travail admirable pour l'expliquer.