(转载)winform无标题窗体点击任务栏最小化、还原功能

转载自 http://www.cnblogs.com/liubiaocai/archive/2011/07/18/2109808.html

做winform开发的时候,常常为了美化界面,把窗体的FormBorderStyle属性设置为None,即所谓的无标题窗体,这个时候,在任务栏鼠标右击是没有菜单的,那么如何吧默认的系统菜单还原回来呢?

 

第一步,引用命名空间

 

using System.Windows.Forms;
using System.Runtime.InteropServices;

 

第二部,申明win32方法,放在Form类里面

[DllImport("user32.dll", EntryPoint = "GetWindowLong", CharSet = CharSet.Auto)]
        
public static extern int GetWindowLong(HandleRef hWnd, int nIndex);

        [DllImport(
"user32.dll", EntryPoint = "SetWindowLong", CharSet = CharSet.Auto)]
        
public static extern IntPtr SetWindowLong(HandleRef hWnd, int nIndex, int dwNewLong);

 

第三步,在Form的Load事件中添加以下代码

 

 protected override CreateParams CreateParams
 {
     get
      {
          const int WS_MINIMIZEBOX = 0x00020000;  // Winuser.h中定义   
          CreateParams cp = base.CreateParams;
          cp.Style = cp.Style | WS_MINIMIZEBOX;   // 允许最小化操作   
          return cp;
      }

通过以上步骤,就可以把系统默认菜单给恢复啦。

 

posted @ 2014-01-16 15:54  苏苏zhao  阅读(148)  评论(0)    收藏  举报