程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> 界面開發(三)--- 設置窗體的Region

界面開發(三)--- 設置窗體的Region

編輯:關於.NET

經過上面兩篇的界面開發,我們使用Windows的Hook技術,成功的將系統中的窗體的消息截 取,並添加了自己的事件處理程序,這篇文章就是通過我們對這些消息的處理的第一步,設置 窗體的樣式和窗體的Region。

Region對於窗體來說是一個非常重要的概念,他就是Windows分配給窗體顯示的區域,所以 ,我們第一步就是根據我們的需要設計我們的窗體區域。而對於Windows窗體區域的設置, WndProc中的STYLECHANGED,SHOWWINDOW,SIZE,WINDOWPOSCHANGED都有可能用到。這些方法都 對窗體的樣式或者窗體的大小就行了修改,所以我們也要對這幾個消息進行處理。

首先我們創建一個類用來設置窗體的顯示,名稱為SkinAppearance.cs,在這個文件中我添 加了一個方法,叫做SetRegion,並且參數設置成為我們的窗體SkinningForm。SetRegion的代 碼如下:

/// <summary>
         /// Set SkinningForm Region
         /// </summary>
         /// <param name="from">form to set  region</param>
         public void SetRegion(SkinningForm form)
         {
             // Check Form
             if (form == null)
             {
                 return;
             }
             // Get Form Size
             Size size = form.Size;
             // Set Color Size
             Size cornerSize = new Size(90, 90);
             // Create Region Handle
             IntPtr hRegion = NativeMethod.CreateRoundRectRgn(0,  0, size.Width + 1, size.Height + 1, cornerSize.Width,  cornerSize.Height);
             Region region = Region.FromHrgn(hRegion);
             // Set Region
             form.Region = region;
             region.ReleaseHrgn(hRegion);
         }

這樣我們就設置了我們的窗體樣式,其中cornerSize我設置的比較大,這樣顯示的效果比較 明顯。顯示的窗體如下:

這樣的顯示比較難看,這是因為我們還沒有對窗體進行其他的繪畫。當然我們也可以通過這 個方法對窗體的顯示進行其他的操作。下一篇將使用GDI+對窗體進行繪畫,主要對窗體的邊框 進行設計。

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