SubClassWindow--------實現窗口子類化的函數

 窗口子類化方法

  應用程序爲了登記一個窗口類,首先要填寫好一個WNDCLASS結構,其中的結構參數lpfnWndProc就是該類窗口函數的地址,接着調用RegisterClass()函數向Windows系統申請登記這個窗口類。這時Windows會爲其分配一塊內存來存放該類的全部信息,這個內存塊稱爲窗口類內存塊。

  當應用程序要創建一個屬於某一已登記窗口類的窗口時,Windows便爲這個窗口分配一塊內存,即窗口內存塊,用來存放與該窗口有關的專用信息。這些信息一部分來自傳遞給窗口創建函數CreateWindow()或CreateWindowEx()的參數信息,另一部分則來自所屬窗口類的窗口類內存塊,其中參數lpfnWndProc便被Windows從窗口類內存塊複製到爲新創建窗口分配的窗口內存塊中。當有消息被髮送到這個窗口時,Windows檢查該窗口內存塊中的窗口函數地址(lpfnWndProc),並調用該地址上的函數來處理這些消息。

  所謂窗口子類化,實際上就是改變窗口內存塊中的有關參數。由於這種修改只涉及到一個窗口的窗口內存塊,因此它不會影響到屬於同一窗口類的其它窗口的功能和表現。窗口子類化中最常見的是修改窗口內存塊中的窗口函數地址(lpfnWndProc),使其指向一個新的窗口函數,從而改變原窗口函數的處理方法,改進其功能。着可以利用SubClassWindow(hwnd,(wndproc)mywndprc)來實現。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章