2009-01-20 91 views
1

如何在Windows Vista中的C#winforms窗口的标题栏上绘制工具栏?我有一个工作窗口,除非窗口未被最小化/非最大化,它的大小增加了大约16x32px。如果可能,请提供代码示例。在窗口的标题栏上绘制工具栏

回答

1

有效执行此操作的唯一方法是在为表单重写WndProc方法时处理WM_NCPAINT消息。

传递到WndProc的基本实现将导致窗框被绘制,但是在那个时候,您将负责在标题栏上绘制工具栏元素。

您还需要处理所有其他WM_NC *消息,这将允许您处理按钮点击等(您将需要为您的绘制控件处理事件)。

+0

你可以提供示例代码,因为我是新来的c#。 – duckblaster 2009-01-20 05:38:11

0

我一直在四处寻找同样的问题,因为我想将代码与在左上角那个大按钮功能导航栏......我发现的唯一的好来源在CodeProjectthis blogthis oneanother one

+0

我已经看过这些,并且使用http://www.codeproject.com/KB/dialog/AeroNonClientAreaButtons.aspx中的一个,但是在每次未最小化/最大化时都会扩大窗口大小的问题。 – duckblaster 2009-01-20 06:26:13