2009-04-02 15 views
2

私はWindowsフォームで作業しています。ステータスバーにテキストを含むウィンドウを作成することはできますか?応用? (主に私が実装している私のAeroガラスに印刷する標準のタイトルテキストは高すぎるのでひどく見えますし、私自身のテキストタイトルを描いていて、明らかに二倍を望んでいないからです)。ウィンドウのタイトルバーテキストを削除しますが、ステータスバーのテキストを保持します

この解決策(How to make a window have taskbar text but no title bar)は、依然として窓フレームを保持したいので満足できるものではありません。

ご協力いただきありがとうございます。

** 私はジョンの勧告を認識していますが、まだ明確な方向、誰もが前方にあなたのアイデアを入れて気軽に求めて **の根性に入るためにサブクラス化を必要とする何のことをいっている

答えて

9

これはそれを行う必要があります。

[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

'WindowThemeAttributeType'または 'WTA_NONCLIENT'を解決できません。 – GONeale

+0

Nm。この記事(http://www.codeproject.com/KB/vista/HideCaptionIcon.aspx)の助けを借りて私は必要なリファレンスをセットアップしました。乾杯!これは大きな助けとなっています。 – GONeale

+0

Pinvoke.netは、これらのinteropの構造やものを理解するのにも大きな助けになります。 –

-1

応用。あなたは特定のメッセージ(WM_PAINTなど)を傍受してフォームをスキンします。あなたが以前にそのレベルで働いたことがないなら、それは簡単なことではありません。

+0

まあ、私は深いDWM APIで管理されていないライブラリを呼び出すには、すでに膝です。だから私はすべての解決策を聞いてうれしいです。 – GONeale

+0

Windowsの深い内部でサブクラス化または開発に触れていない場合の紹介です:http://support.microsoft.com/kb/815775 – John

関連する問題