C#開發WINDOWS應用程式時訊息的處理(C#學習筆記之二)
來源:互聯網
上載者:User
作者:浙江省溫嶺市電信局 王駿
WINDOWS應用程式是靠訊息驅動的,在VC中我們通過CLASSWIZARD可以為某視窗類別添加訊息處理函數,CLASSWIZARD將為你添加訊息映射,對於WINDOWS訊息,產生的訊息處理函數重載了基類的虛擬方法。而在C#中如何處理訊息呢?本文針對VS.NET BETA1環境下的C#簡單地介紹WINDOWS訊息以及自訂訊息的處理方法。
範例程式碼下載 17K
一、產生一個名為MSGApplication的工程
工程的建立方法請參考:C#學習筆記之一
二、處理WM_PAINT訊息
我們以WM_PAINT訊息的處理為例,在C#中處理訊息與MFC的訊息處理是類似的,但更為簡單。MFC中需要使用DECLARE_MESSAGE_MAP來定義訊息映射,在C#就不需要了。比如WM_PAINT訊息,我們只要重載父類中的OnPaint虛擬方法即可(雖然在BETA1中重載父類虛擬方法的操作過程有點繁瑣),方法如下:
在菜單View->Other Windows->Object Browser開啟對象瀏覽視窗(或用CTRL+ALT+J開啟),在我們的工程名下找到Form並選中,這時在右邊的視窗列出所有Form類的成員函數,如圖所示:
我們選中OnPaint(System.WinForms.PaintEventArgs)此時在下面會顯示完整的OnPaint函數protected void OnPaint ( System.WinForms.PaintEventArgs e )我們將這一行字串Copy下來。開啟Form1.cs進行代碼編輯,我們把剛才拷貝下來的函數定義複製到Form1類裡面,並加上override關鍵字,此時我們便可以在裡面添加我們的訊息處理代碼了,請參考如下程式碼片段:
protected override void OnPaint ( System.WinForms.PaintEventArgs e )
{
Font font = new Font("黑體",28);///定義字型:黑體,大小:28
SolidBrush bluepen = new SolidBrush(Color.Blue);///建立藍色畫筆
SolidBrush blackpen = new SolidBrush(Color.FromARGB(0xa0,0xa0,0xb0));///建立黑色畫筆