2009-04-02 11 views
2

Je travaille avec Windows Forms, est-il possible de créer une fenêtre avec du texte dans la barre d'état, mais sans texte dans la barre de titre application? (En grande partie parce que le texte de titre standard qui imprime sur mon verre Aero que j'ai mis en œuvre semble terrible car il est trop haut et je dessine mon propre titre de texte et évidemment je ne veux pas le double up).Supprimer le texte de la barre de titre d'une fenêtre mais conserver le texte de la barre d'état

Cette solution (How to make a window have taskbar text but no title bar) n'est pas satisfaisante car je souhaite toujours conserver un cadre de fenêtre FixedDialog.

Merci pour votre aide à tous.

** Je suis au courant de la recommandation de John, mais toujours à la recherche une orientation plus claire, personne ne hésitez pas à mettre en avant vos idées **

Répondre

9

Cela devrait le faire:

[DllImport("uxtheme.dll")] 
public static extern int SetWindowThemeAttribute(IntPtr hWnd, WindowThemeAttributeType wtype, ref WTA_OPTIONS attributes, uint size); 

public enum WindowThemeAttributeType : uint 
{ 
    /// <summary>Non-client area window attributes will be set.</summary> 
    WTA_NONCLIENT = 1, 
} 

public struct WTA_OPTIONS 
{ 
    public uint Flags; 
    public uint Mask; 
} 
public static uint WTNCA_NODRAWCAPTION = 0x00000001; 
public static uint WTNCA_NODRAWICON = 0x00000002; 

WTA_OPTIONS wta = new WTA_OPTIONS() { Flags = WTNCA_NODRAWCAPTION | WTNCA_NODRAWICON, Mask = WTNCA_NODRAWCAPTION | WTNCA_NODRAWICON }; 

SetWindowThemeAttribute(this.Handle, WindowThemeAttributeType.WTA_NONCLIENT, ref wta, (uint)Marshal.SizeOf(typeof(WTA_OPTIONS))); 
+0

Impossible de résoudre 'WindowThemeAttributeType' ou 'WTA_NONCLIENT'. – GONeale

+0

Nm. Avec l'aide de cet article (http://www.codeproject.com/KB/vista/HideCaptionIcon.aspx), j'ai mis en place les références dont j'avais besoin. À votre santé! Cela a été une aide précieuse. – GONeale

+0

Pinvoke.net est également une grande aide pour trouver ces structures interopérables et d'autres choses. –

-1

Qu'est-ce que vous parlez, il faudrait subclassing d'entrer dans les entrailles de la application. Estimalement, vous dépouiller votre formulaire en interceptant certains messages (comme WM_PAINT etc.). Ce n'est pas une chose simple à faire si vous n'avez jamais travaillé à ce niveau auparavant.

+0

Eh bien, je suis déjà jusqu'aux genoux dans l'invocation des bibliothèques non gérés avec l'API DWM. Je suis donc heureux d'entendre toutes les solutions. – GONeale

+0

Voici une introduction au cas où vous n'avez pas touché Subclassing ou le développement dans les composants internes profonds de Windows: http://support.microsoft.com/kb/815775 – John

Questions connexes