none
关于窗口最大化和最小化的问题 RRS feed

  • 问题

  • 不论是在Winform还是在WPF中,有的时候都需要对窗口的状态进行最大化,最小化等操作。不知道大家主要了没有,在Windows 7 下面,正常的窗口在进行最小化(也就是利用系统默认窗口的最小化按钮)的时候,会有一个动态效果--有一个类似3D渐隐的效果。一般情况情况下,我们在进行窗口时,用的几乎都是这样的代码: this.WindowState = WindowState.Minimized;然而我发现  如果我们这样写的话,就不会有这样的效果。想问一下大家,这是什么原因?
    2010年11月24日 3:06

答案

  • 请参考 Win32 API:ShowWindow(myForm.Handle, SW_MINIMIZE),应该可以实现您的需求。

    标准窗口的最小化按钮利用的是 WM_MINIMIZE 消息,您也可以通过 SendMessage 来实现最小化效果的。


    Mark Zhou
    2010年11月24日 8:36

全部回复

  • 你说的是动态最小化窗口吗?WindowState.Minimized应该是窗口最小化的API,不清楚MS有没有提供动态最小化的API
    平凡的男孩
    2010年11月24日 7:09
  • 请参考 Win32 API:ShowWindow(myForm.Handle, SW_MINIMIZE),应该可以实现您的需求。

    标准窗口的最小化按钮利用的是 WM_MINIMIZE 消息,您也可以通过 SendMessage 来实现最小化效果的。


    Mark Zhou
    2010年11月24日 8:36
  • 好的,我看看。谢谢你!
    2010年11月25日 0:50
  • 谢谢你!
    2010年11月25日 0:56
  • 请参考 Win32 API:ShowWindow(myForm.Handle, SW_MINIMIZE),应该可以实现您的需求。

    标准窗口的最小化按钮利用的是 WM_MINIMIZE 消息,您也可以通过 SendMessage 来实现最小化效果的。


    Mark Zhou


    我用了ShowWindow()方法来测试,测试结果如下:

    Winform中的FormBorderStyle:

    Sizable  有效果
    FixedSingle  有效果
    Fixed3D 有效果
    FixedDialog 有效果
    FixedToolWindow  无效果
    SizableToolWindow 无效果

    WPF中的WindowStyle:
    None:无效果
    SingerBorderWindow:有效果
    ThreeDBorderWindow:有效果
    ToolWindow:有效果

     

     


    学习
    2010年11月25日 1:59