程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> c# 使用api函數 ShowWindowAsync 控制窗體,

c# 使用api函數 ShowWindowAsync 控制窗體,

編輯:C#入門知識

c# 使用api函數 ShowWindowAsync 控制窗體,


1.需要匯入 System.Runtime.InteropServices 命名空間

2.宣告 ShowWindowAsync 函數

        [DllImport("user32.dll")]

        private static extern bool ShowWindowAsync(

            IntPtr hWnd,

            int nCmdShow

        );

3.宣告 ShowWindow函數

        [DllImport("user32.dll")]

        public static extern int ShowWindow(

            int hwnd,

            int nCmdShow

        );

4.宣告API常數定義

        //API 常數定義

        private const int SW_HIDE = 0;

        private const int SW_NORMAL = 1;

        private const int SW_MAXIMIZE = 3;

        private const int SW_SHOWNOACTIVATE = 4;

        private const int SW_SHOW = 5;

        private const int SW_MINIMIZE = 6;

        private const int SW_RESTORE = 9;

        private const int SW_SHOWDEFAULT = 10;

5.上述函數功能相同,都是用來設定視窗大小,不同的是宣告的型態不一樣需轉型。

ShowWindowAsync(this.Handle, SW_MINIMIZE);

ShowWindow((int)this.Handle, SW_MINIMIZE);

 

6.若是把int 改成IntPtr ,使用ShowWindow就不用轉型,所以在宣告時就可以考慮資料型態,必免轉型所耗的資源。

        [DllImport("user32.dll")]

        public static extern int ShowWindow(

            int hwnd,

            int nCmdShow

        );

 

C#完整範例

using System;

using System.Windows.Forms;

 

using System.Runtime.InteropServices;

 

namespace CS_WindowsResize

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        //API 常數定義

        private const int SW_HIDE = 0;

        private const int SW_NORMAL = 1;

        private const int SW_MAXIMIZE = 3;

        private const int SW_SHOWNOACTIVATE = 4;

        private const int SW_SHOW = 5;

        private const int SW_MINIMIZE = 6;

        private const int SW_RESTORE = 9;

        private const int SW_SHOWDEFAULT = 10;

 

        [DllImport("user32.dll")]

        private static extern bool ShowWindowAsync(

            IntPtr hWnd,

            int nCmdShow

        );

 

        [DllImport("user32.dll")]

        public static extern int ShowWindow(

            int hwnd,

            int nCmdShow

        );

        private void button1_Click(object sender, EventArgs e)

        {

            //最小化

            ShowWindowAsync(this.Handle, SW_MINIMIZE);

        }

        private void button2_Click(object sender, EventArgs e)

        {

            //最大化

            ShowWindowAsync(this.Handle, SW_MAXIMIZE);

        }

 

        private void button3_Click(object sender, EventArgs e)

        {

            //還原

            ShowWindowAsync(this.Handle, SW_RESTORE);

        }

 

        private void button4_Click(object sender, EventArgs e)

        {

            //最小化

            ShowWindow((int)this.Handle, SW_MINIMIZE);

        }

 

        private void button5_Click(object sender, EventArgs e)

        {

            //最大化

            ShowWindow((int)this.Handle, SW_MAXIMIZE);

        }

 

        private void button6_Click(object sender, EventArgs e)

        {

            //還原

            ShowWindow((int)this.Handle, SW_RESTORE);

        }

    }

}

 

轉載自:http://www.dotblogs.com.tw/yc421206/archive/2009/07/06/9140.aspx


C:\

可以的

參考這個對C盤進行清理:
1.關閉系統還原:我的電腦屬性/系統還原/關閉所有磁盤上的系統還原,但是以後就不能用系統還原了!
2.關閉系統休眠:控制面板/電源/休眠/在啟動系統休眠前面的勾去掉
3.移動虛擬內存,我的電腦屬性/高級/性能/設置/高級/更改/選C盤也就是系統盤,選無分頁面,然後把虛擬內存設置到其磁盤,要剩余磁盤空間多的磁盤,比如D,E,F等盤. 設成內存的1.5~2.5倍,大小可設成一樣!
5.清理IE臨時文件夾,internet選項,刪除臨時文件和脫機文件
6.刪除系統日志和程序日志,我的電腦/控制面板/管理工具/計算機管理/事件查看器/應用程序,鼠標右鍵/清除所事件,在依次清除系統日志
7.清理系統緩存:2000系統是:C:\WINNT\system32\dllcache下的所有文件
XP系統是:C:\windows\system32\dllcache下的所有文件 清理系統緩存(打開我的電腦/工具/文件和文件夾選項/隱藏受保護的系統文件的勾去掉在把顯示全部文件勾上)。也可以直接運行sfc.exe /purgecache命令自動刪除。
8.清空回收站
9.刪除c:\windows\SoftwareDistribution\Download下的文件(系統更新時下載的文件如你裝好了更新也就沒有用了)
10.刪除c:\windows\RegisteredPackages下所有目錄
11.刪除C:\WINDOWS\Downloaded Program Files下所有的文件
12.我的電腦 文件夾選項 查看 隱藏已知受系統保護的文件勾去掉,顯示所有文件勾上確定。
13.刪除c:\windows\所有帶$8882305$的文件(系統更新後的備份文件)

zhidao.baidu.com/question/11035955.html
zhidao.baidu.com/question/12223613.html
zhidao.baidu.com/question/14874715.html
......余下全文>>
 

C:\

可以的

參考這個對C盤進行清理:
1.關閉系統還原:我的電腦屬性/系統還原/關閉所有磁盤上的系統還原,但是以後就不能用系統還原了!
2.關閉系統休眠:控制面板/電源/休眠/在啟動系統休眠前面的勾去掉
3.移動虛擬內存,我的電腦屬性/高級/性能/設置/高級/更改/選C盤也就是系統盤,選無分頁面,然後把虛擬內存設置到其磁盤,要剩余磁盤空間多的磁盤,比如D,E,F等盤. 設成內存的1.5~2.5倍,大小可設成一樣!
5.清理IE臨時文件夾,internet選項,刪除臨時文件和脫機文件
6.刪除系統日志和程序日志,我的電腦/控制面板/管理工具/計算機管理/事件查看器/應用程序,鼠標右鍵/清除所事件,在依次清除系統日志
7.清理系統緩存:2000系統是:C:\WINNT\system32\dllcache下的所有文件
XP系統是:C:\windows\system32\dllcache下的所有文件 清理系統緩存(打開我的電腦/工具/文件和文件夾選項/隱藏受保護的系統文件的勾去掉在把顯示全部文件勾上)。也可以直接運行sfc.exe /purgecache命令自動刪除。
8.清空回收站
9.刪除c:\windows\SoftwareDistribution\Download下的文件(系統更新時下載的文件如你裝好了更新也就沒有用了)
10.刪除c:\windows\RegisteredPackages下所有目錄
11.刪除C:\WINDOWS\Downloaded Program Files下所有的文件
12.我的電腦 文件夾選項 查看 隱藏已知受系統保護的文件勾去掉,顯示所有文件勾上確定。
13.刪除c:\windows\所有帶$8882305$的文件(系統更新後的備份文件)

zhidao.baidu.com/question/11035955.html
zhidao.baidu.com/question/12223613.html
zhidao.baidu.com/question/14874715.html
......余下全文>>
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved