Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 删除窗口的标题栏文本,但保留状态栏文本_C#_.net_Winforms - Fatal编程技术网

C# 删除窗口的标题栏文本,但保留状态栏文本

C# 删除窗口的标题栏文本,但保留状态栏文本,c#,.net,winforms,C#,.net,Winforms,我正在使用Windows窗体,是否可以创建一个在状态栏中有文本,但在应用程序顶部的标题栏中没有文本的窗口?(主要是因为打印在我的Aero glass上的标准标题文本看起来很糟糕,因为它太高了,我正在绘制我自己的文本标题,显然不希望出现双重效果) 此解决方案()不令人满意,因为我仍然希望保留一个FixedDialog窗口框架 谢谢大家的帮助 **我知道John的建议,但仍在寻求更明确的方向,任何人都可以自由地提出您的想法**您所说的需要子类化才能深入应用程序的本质。本质上,你会通过截取某些消息(如

我正在使用Windows窗体,是否可以创建一个在状态栏中有文本,但在应用程序顶部的标题栏中没有文本的窗口?(主要是因为打印在我的Aero glass上的标准标题文本看起来很糟糕,因为它太高了,我正在绘制我自己的文本标题,显然不希望出现双重效果)

此解决方案()不令人满意,因为我仍然希望保留一个
FixedDialog
窗口框架

谢谢大家的帮助


**我知道John的建议,但仍在寻求更明确的方向,任何人都可以自由地提出您的想法**

您所说的需要子类化才能深入应用程序的本质。本质上,你会通过截取某些消息(如WM_PAINT等)来剥皮你的表单。如果您以前从未在该级别工作过,那么这不是一件简单的事情。

这应该可以做到:

[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)));
[DllImport(“uxtheme.dll”)]
公共静态外部设置WindowThemeAttribute(IntPtr hWnd、WindowThemeAttributeType wtype、ref WTA_选项属性、uint size);
公共枚举窗口特征属性类型:uint
{
///将设置非客户端区域窗口属性。
WTA_非客户端=1,
}
公共结构WTA_选项
{
国旗;
公众口罩;
}
公共静态uint WTNCA_NODRAWCAPTION=0x00000001;
公共静态uint WTNCA_NODRAWICON=0x00000002;
WTA_OPTIONS WTA=新WTA_OPTIONS(){Flags=WTNCA_NODRAWCAPTION | WTNCA_NODRAWICON,Mask=WTNCA_NODRAWCAPTION | WTNCA_NODRAWICON};
设置WindowThemeAttribute(this.Handle,WindowThemeAttributeType.WTA_NONCLIENT,ref WTA,(uint)Marshal.SizeOf(typeof(WTA_OPTIONS));

我已经深入到用DWMAPI调用非托管库的地步了。因此,我很高兴听到所有的解决方案。这里是一个介绍,以防您没有触及Windows:Nm深层内部的子类化或开发。在本文()的帮助下,我设置了所需的引用。干杯这是一个很大的帮助。Pinvoke.net也对弄清楚这些互操作结构和东西有很大的帮助。