No Windows 7 com o tema Aero, a janela Preferências do Notepad ++ tem cantos quadrados, nenhum ícone do menu do sistema, um botão Fechar e uma 1px
borda mais escura . Esta janela também possui um AlwaysOnTop
atributo.
(Eu redimensionei a janela para caber uma largura de 640px
.)
Curiosamente, você pode copiar este estilo para outras janelas usando o AutoHotkey . Então, parece que não há truques sujos envolvidos. No entanto, acho que não vi esse estilo de janela em nenhum outro lugar.
Está usando este estilo condenado pela Microsoft? Esse tipo de janela tem um nome?
Para os curiosos: Normal vs "Square"
Respostas:
É chamado de janela de ferramentas (barra) . Todas as janelas que tiverem o
WS_EX_TOOLWINDOW
estilo estendido serão renderizadas sem um menu de sistema ou caixas de minimizar / maximizar e uma pequena barra de título. No Windows XP e superior (que suportam temas), as janelas de ferramentas geralmente são renderizadas sem cantos arredondados (pelo menos com os temas padrão).Esse estilo geralmente é usado para barras de ferramentas (Figura 1). Você pode vê-lo arrastando uma barra de ferramentas de um programa que permite reorganizar as barras de ferramentas. Observe que ela se torna uma janela parecida com aquela em questão. O Windows Explorer também o usa para deskbands (Figura 2), que são basicamente a mesma coisa. Você pode vê-los arrastando uma pasta para uma das bordas da tela e arrastando a barra de ferramentas / faixa de trabalho resultante para a área de trabalho.
Obviamente, alguns programas usam o estilo para outros propósitos, geralmente como uma maneira de criar uma espécie de diálogo temporário modal que é uma criança para o programa principal.
Nota: isso tem alguns efeitos (os dois primeiros são geralmente os motivos para o uso não padrão):
Figura 1: janela da barra de ferramentas do MSPaint
Figura 2: faixa de trabalho do Windows Explorer
fonte
Alt
+PrintScreen
captura apenas o diálogo no Windows 7 com o diálogo Preferências do Notepad ++.Isso detalha o nome desse estilo de janela e as opções disponíveis no .NET; veja a excelente resposta da @Synechech para o propósito original deste estilo de janela, as razões pelas quais ele pode ser usado para essa caixa de diálogo e a implementação em programas não gerenciados do Windows, como o Notepad ++.
A janela tem cantos quadrados e parece que, porque um dos designers / programadores do Notepad ++ decidiu usar um estilo de janela específico. A Synetech detalha as vantagens desse estilo de janela.
No .NET / Visual Studio, isso é definido na
FormBorderStyle
propriedade daSystem.Windows.Forms.Form
classe. Especificamente, é oFixedToolWindow
. Os valores possíveis estão naSystem.Windows.Forms.FormBorderStyle
enumeração.Os
ToolWindow
s em .NET com todos os valores padrão funcionam de forma um pouco diferente de uma planícieWS_EX_TOOLWINDOW
na API do Windows, embora pareçam iguais. Com os testes, eu determinei que eles não aparecem na barra de tarefas e eles não aparecem no Alt+ Tabalternador de tarefas menos que a propriedade formulárioShowInTaskbar
está definido parafalse
.ShowInTaskbar
afeta a visibilidade na barra de tarefas e Alt+ TabparaToolWindow
s, mas apenas na barra de tarefas para outras pessoas.Enquanto isso, também é possível remover os botões ícone / minimizar / restaurar / maximizar dos estilos de janela mais comuns, embora não pareça ser possível adicioná-los a
ToolWindow
s. Também é possível ocultar janelas normais da barra de tarefas.A única vantagem funcional que
WS_EX_TOOLWINDOW
oferece, até onde eu sei, é que a janela não aparece em Alt+ Tab.Incluí algumas capturas de tela comparando os estilos de janela do .NET. Estes não são usados diretamente pelo Notepad ++, nem outros programas não gerenciados, mas são nomeados pela Microsoft, então ...
Valores possíveis de
FormBorderStyle
:A primeira imagem é uma captura de tela do programa em execução com o Aero ativado, a segunda é a partir da exibição do designer do Visual Studio (sem Aero).
Clique nas imagens para as versões em tamanho real As
descrições são retiradas do artigo do MSDN sobre a
FormBorderStyle
enumeração.None
FixedSingle
Fixed3D
FixedDialog
Sizable
(padrão)FixedToolWindow
SizableToolWindow
fonte
WS_EX_TOOLWINDOW
estiliza as janelas com o estilo. .NET simplesmente aliasesFixedToolWindow
paraWS_EX_TOOLWINDOW
eSizableToolWindow
paraWS_EX_TOOLWINDOW|WS_THICKFRAME
. Sem ofensa, mas esta resposta não responde realmente à pergunta ou explica o comportamento solicitado, é simplesmente uma lista / recurso de diferentes estilos de janela usados no .NET.Does this type of window have a name?
Ele responde muito, pelo menos da perspectiva de um programador .NET. E explicação? Porque o programador sentiu vontade de usá-lo. Você listou possíveis efeitos desejados. É sobre isso. Seja recomendado ou condenado pela MS, não faço ideia. Pessoalmente, acho que você fez um trabalho admirável ao explicá-lo.