wndproc函式作用:
主要用在攔截並處理系統訊息和自定義訊息
比如:windows程式會產生很多訊息,比如你單擊滑鼠,移動視窗都會產生訊息。這個函式就是預設的訊息處理函式。你可以過載這個函式來制定自己的訊息處理流程.
在cs中,可以重寫wndproc函式,來捕捉所有發生有視窗訊息。
這樣,我們就可以"篡改"傳入的訊息,而人為的讓視窗改變行為。
**例項:
public partial class form1 : form
private demo demo= null;
private void form1_load(object sender, eventargs e)
private void button1_click(object sender, eventargs e)
protected override void wndproc(ref message m)
else if (m.msg == demo.my_msg_end)
base.wndproc(ref m);}}
public class demo
private const int wm_user = 0x0400;
public static int my_msg_begin = wm_user + 100;
public static int my_msg_end = wm_user + 101;
[dllimport("user32.dll")]
public static extern int sendmessage(int hwnd, int msg, int wparam, int lparam);
public void test()
{sendmessage(m_hwnd, my_msg_begin, 0, 0);
函式過載 函式重寫 函式隱藏
函式重寫 父類和子類中有函式原型相同的函式,子類繼承父類後,兩個函式在子類中都存在,如果不加訪問許可權的話預設子類物件訪問的是子類自己的此函式 必須滿足的條件 函式原型相同 且只發生在父類與子類之間 執行期間根據物件型別決呼叫的函式 函式隱藏 子類中有與父類同名的函式,但引數個數不同,子類繼承父類後...
函式的重寫特性
重寫是發生於繼承過程中的一種函式特點,也稱為覆蓋。特點 當子類和父類有一摸一樣的函式 型別,名稱,引數列表完全一樣,內容可以不一樣 時,通過子類物件呼叫函式時,執行的是子類函式,就相當於父類對函式被覆蓋。要求 子類的函式許可權必須大於等於父類函式。實際用途 在軟體更新過程中可以新建乙個子類去繼承要修...
函式過載和重寫
過載overload 是函式名相同,引數列表不同 過載只是在類的內部存在。但是不能靠返回型別來判斷。函式過載發生在同一作用域內,即在同乙個類裡有多個同名函式,引數列表不同。重寫override 也叫做覆蓋。子類重新定義父類中有相同名稱和引數的虛函式。函式特徵相同。但是具體實現不同,主要是在繼承關係中...