窗口句柄浅析
句柄(HANDLE)是Windows程序中一個重要的概念,使用也非常頻繁。在Windows程序中,有各種各樣的資源(窗口、圖標、光標等),系統在創建這些資源時會為它們分配內存,并返回標識這些資源的標識號,即句柄。 窗口句柄是windows句柄的一種,且是重要的一種句柄。在Windows應用程序中,窗口是通過窗口句柄(HWND)來標識的。我們要對某個窗口進行操作,首先就要得到這個窗口的句柄。
窗口句柄的概念比較抽象,簡單說窗口句柄就是一個窗口(window)的代表。我們通過幾個例子來認識它。
1.LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
windows窗口處理函數,windows消息機制說的是,每當某個窗口發生變化(比如改變大小,移動),windows系統都會發相應的消息(wm_size,wm_move)給這個窗口。即調用函數 SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);注意這里WndProc和SendMessage的第一個參數都是HWND,窗口句柄代表這個窗口。
2. hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
????? CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
這里說的是窗口句柄的產生,可以把hWnd想象成指針,CreateWindow想象成c++里的new,創建一個window,系統要為這個window對象分配一些資源,可以想象,window是由一個大的結構構成的。同時窗口句柄用來標識這個窗口。
3.有個窗口的句柄,則你就可以操控這個窗口的一切。
大量管理window的win32 api都是以hwnd做為參數。下面列舉一些:
BringWindowToTop
FindWindowEx
GetParent
SetWindowPos
GetWindowRect
等等。
4.不僅窗口,窗口上的控件,象按鈕,編輯框等也有窗口句柄,因為它們也是一種特殊的窗口,上面操作窗口的api大部分對這些控件窗口也適用。
本文轉自 xchsp 51CTO博客,原文鏈接:http://blog.51cto.com/freebird/97607,如需轉載請自行聯系原作者
窗口句柄的概念比較抽象,簡單說窗口句柄就是一個窗口(window)的代表。我們通過幾個例子來認識它。
1.LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
windows窗口處理函數,windows消息機制說的是,每當某個窗口發生變化(比如改變大小,移動),windows系統都會發相應的消息(wm_size,wm_move)給這個窗口。即調用函數 SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);注意這里WndProc和SendMessage的第一個參數都是HWND,窗口句柄代表這個窗口。
2. hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPEDWINDOW,
????? CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
這里說的是窗口句柄的產生,可以把hWnd想象成指針,CreateWindow想象成c++里的new,創建一個window,系統要為這個window對象分配一些資源,可以想象,window是由一個大的結構構成的。同時窗口句柄用來標識這個窗口。
3.有個窗口的句柄,則你就可以操控這個窗口的一切。
大量管理window的win32 api都是以hwnd做為參數。下面列舉一些:
BringWindowToTop
FindWindowEx
GetParent
SetWindowPos
GetWindowRect
等等。
4.不僅窗口,窗口上的控件,象按鈕,編輯框等也有窗口句柄,因為它們也是一種特殊的窗口,上面操作窗口的api大部分對這些控件窗口也適用。
本文轉自 xchsp 51CTO博客,原文鏈接:http://blog.51cto.com/freebird/97607,如需轉載請自行聯系原作者
總結
- 上一篇: 计算机页面的工具,网页智能填写工具
- 下一篇: 指数函数图像怎么画?