VC 各種情況下的視窗控制程式碼的獲取
AfxGetMainWnd
AfxGetMainWnd獲取自身視窗控制程式碼
HWND hWnd = AfxGetMainWnd()->m_hWnd;
GetTopWindow
函式功能:該函式檢查與特定父視窗相聯的子視窗z序(Z序:垂直螢幕的方向,即疊放次序),並返回在z序頂部的子視窗的控制程式碼。
函式原型:HWND GetTopWindow(HWND hWnd);
引數:
hWnd:被查序的父視窗的控制程式碼。如果該引數為NULL,函式返回Z序頂部的視窗控制程式碼。
返回值:
如果函式成功,返回值為在Z序頂部的子視窗控制程式碼。如果指定的視窗無子視窗,返回值為NULL。
GetForegroundWindow
函式功能:該函式返回當前系統的前臺視窗的視窗控制程式碼。
函式原型:HWND GetForegroundWindow(VOID)
返回值:函式返回前臺窗回的控制程式碼。
GetActiveWindow
函式功能:該函式可以獲得與呼叫該方法的執行緒的訊息佇列相關的活動視窗的視窗控制程式碼(就是取得當前程式的活動視窗的視窗控制程式碼)。
函式原型:HWND GetActiveWindow(VOID)
返回值:返回值是與呼叫執行緒的訊息佇列相關的活動視窗的控制程式碼。否則,返回值為NULL。
GetSafeHwnd
函式功能:獲取某個視窗物件(CWnd的派生物件)指標的控制程式碼(HWND)時,最安全的方法是使用GetSafeHwnd()函式。
通過下面的例子來看其理由:
CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到資源管理器
HWND hwnd = pwnd->m_hwnd; //得到它的HWND
這樣的程式碼當開始得到的pwnd為空的時候就會出現一個“General protection error”,並關閉應用程式,因為一般不能對一個NULL指標訪問其成員,如果用下面的程式碼:
CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到資源管理器
HWND hwnd = pwnd->GetSafeHwnd(); //得到它的HWND
就不會出現問題,因為儘管當pwnd是NULL時,GetSafeHwnd仍然可以用,只是返回NULL
IsWindowVisible
函式功能:該函式獲得給定視窗的可視狀態。
函式原型:BOOL IsWindowVisible(HWND hWnd);
引數;
hWnd:被測試視窗的控制程式碼。
返回值:
如果指定的視窗及其父視窗具有WS_VISIBLE風格,返回值為非零;如果指定的視窗及其父視窗不具有WS_VISIBLE風格,返回值為零。由於返回值表明了視窗是否具有Ws_VISIBLE風格,因此,即使該視窗被其他視窗遮蓋,函式返回值也為非零。
備註:
視窗的可視狀態由WS_VISIBLE位指示。當設定了WS_VISIBLE位,視窗就可顯示,而且只要視窗具有WS_VISIBLE風格,任何畫在視窗的資訊都將被顯示。
IsWindow:
函式功能:該函式確定給定的視窗控制程式碼是否標示一個已存在的視窗。
函式原型:BOOL IsWindow(HWND hWnd);
引數:
hWnd:被測試視窗的控制程式碼。
返回值:
如果視窗控制程式碼標識了一個已存在的視窗,返回值為TURE;如果視窗控制程式碼未標識一個已存在視窗,返回值為FALSE。
FindWindow:
HWND FindWindow(LPCSTR lpClassName,LPCSTR lpWindowName );
引數:
lpClassName
指向一個以null結尾的、用來指定類名的字串或一個可以確定類名字串的原子。如果這個引數是一個原子,那麼它必須是一個在呼叫此函式前已經通過 GlobalAddAtom函式建立好的全域性原子。這個原子(一個16bit的值),必須被放置在lpClassName的低位位元組中,lpClassName的高位位元組置零。
lpWindowName
指向一個以null結尾的、用來指定視窗名(即視窗標題)的字串。如果此引數為NULL,則匹配所有視窗名。
返回值:
如果函式執行成功,則返回值是擁有指定視窗類名或視窗名的視窗的控制程式碼。
如果函式執行失敗,則返回值為 NULL 。可以通過呼叫GetLastError函式獲得更加詳細的錯誤資訊。
SetWindowText:
至於視窗標題的改變,我們可以通過SetWindowText來實現
注:如果視窗本身屬性是不顯示標題的,這個函式的呼叫不會影響視窗屬性。
//Set title for application’s main frame. window .
AfxGetMainWnd ( ) -> SetWindowText (_T("Application title") )
//Set title for View’s MDI child frame. window .
GetParentFrame. ( ) -> SetWindowText ("_T ("MDI Child Frame. new title") )
//Set title for dialog’s push button control.
GetDigitem (IDC_BUTTON) -> SetWindowText (_T ("Button new title ") )
將C/C++開發進行到底~!
AfxGetMainWnd獲取自身視窗控制程式碼
HWND hWnd = AfxGetMainWnd()->m_hWnd;
GetTopWindow
函式功能:該函式檢查與特定父視窗相聯的子視窗z序(Z序:垂直螢幕的方向,即疊放次序),並返回在z序頂部的子視窗的控制程式碼。
函式原型:HWND GetTopWindow(HWND hWnd);
引數:
hWnd:被查序的父視窗的控制程式碼。如果該引數為NULL,函式返回Z序頂部的視窗控制程式碼。
返回值:
如果函式成功,返回值為在Z序頂部的子視窗控制程式碼。如果指定的視窗無子視窗,返回值為NULL。
GetForegroundWindow
函式功能:該函式返回當前系統的前臺視窗的視窗控制程式碼。
函式原型:HWND GetForegroundWindow(VOID)
返回值:函式返回前臺窗回的控制程式碼。
GetActiveWindow
函式功能:該函式可以獲得與呼叫該方法的執行緒的訊息佇列相關的活動視窗的視窗控制程式碼(就是取得當前程式的活動視窗的視窗控制程式碼)。
函式原型:HWND GetActiveWindow(VOID)
返回值:返回值是與呼叫執行緒的訊息佇列相關的活動視窗的控制程式碼。否則,返回值為NULL。
GetSafeHwnd
函式功能:獲取某個視窗物件(CWnd的派生物件)指標的控制程式碼(HWND)時,最安全的方法是使用GetSafeHwnd()函式。
通過下面的例子來看其理由:
CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到資源管理器
HWND hwnd = pwnd->m_hwnd; //得到它的HWND
這樣的程式碼當開始得到的pwnd為空的時候就會出現一個“General protection error”,並關閉應用程式,因為一般不能對一個NULL指標訪問其成員,如果用下面的程式碼:
CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到資源管理器
HWND hwnd = pwnd->GetSafeHwnd(); //得到它的HWND
就不會出現問題,因為儘管當pwnd是NULL時,GetSafeHwnd仍然可以用,只是返回NULL
IsWindowVisible
函式功能:該函式獲得給定視窗的可視狀態。
函式原型:BOOL IsWindowVisible(HWND hWnd);
引數;
hWnd:被測試視窗的控制程式碼。
返回值:
如果指定的視窗及其父視窗具有WS_VISIBLE風格,返回值為非零;如果指定的視窗及其父視窗不具有WS_VISIBLE風格,返回值為零。由於返回值表明了視窗是否具有Ws_VISIBLE風格,因此,即使該視窗被其他視窗遮蓋,函式返回值也為非零。
備註:
視窗的可視狀態由WS_VISIBLE位指示。當設定了WS_VISIBLE位,視窗就可顯示,而且只要視窗具有WS_VISIBLE風格,任何畫在視窗的資訊都將被顯示。
IsWindow:
函式功能:該函式確定給定的視窗控制程式碼是否標示一個已存在的視窗。
函式原型:BOOL IsWindow(HWND hWnd);
引數:
hWnd:被測試視窗的控制程式碼。
返回值:
如果視窗控制程式碼標識了一個已存在的視窗,返回值為TURE;如果視窗控制程式碼未標識一個已存在視窗,返回值為FALSE。
FindWindow:
HWND FindWindow(LPCSTR lpClassName,LPCSTR lpWindowName );
引數:
lpClassName
指向一個以null結尾的、用來指定類名的字串或一個可以確定類名字串的原子。如果這個引數是一個原子,那麼它必須是一個在呼叫此函式前已經通過 GlobalAddAtom函式建立好的全域性原子。這個原子(一個16bit的值),必須被放置在lpClassName的低位位元組中,lpClassName的高位位元組置零。
lpWindowName
指向一個以null結尾的、用來指定視窗名(即視窗標題)的字串。如果此引數為NULL,則匹配所有視窗名。
返回值:
如果函式執行成功,則返回值是擁有指定視窗類名或視窗名的視窗的控制程式碼。
如果函式執行失敗,則返回值為 NULL 。可以通過呼叫GetLastError函式獲得更加詳細的錯誤資訊。
SetWindowText:
至於視窗標題的改變,我們可以通過SetWindowText來實現
注:如果視窗本身屬性是不顯示標題的,這個函式的呼叫不會影響視窗屬性。
//Set title for application’s main frame. window .
AfxGetMainWnd ( ) -> SetWindowText (_T("Application title") )
//Set title for View’s MDI child frame. window .
GetParentFrame. ( ) -> SetWindowText ("_T ("MDI Child Frame. new title") )
//Set title for dialog’s push button control.
GetDigitem (IDC_BUTTON) -> SetWindowText (_T ("Button new title ") )
將C/C++開發進行到底~!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25897606/viewspace-704454/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 根據一個點獲取視窗控制程式碼的APIAPI
- JS獲取元素寬高的兩種情況JS
- jQuery獲取視窗尺寸的例項程式碼jQuery
- jQuery獲取瀏覽器視窗和文件視窗的高度程式碼jQuery瀏覽器
- IOS 自動化,幾種特殊情況下 UI 元素獲取的方式iOSUI
- javascript獲取視窗大小例項程式碼JavaScript
- 呼叫layoutSubviews各種情況分析View
- MYSQL索引失效的各種情況小結MySql索引
- java語言的各種輸入情況Java
- ORACLE不使用工具的情況下獲取物件DDLOracle物件
- 如何用C語言寫一個獲取視窗控制程式碼和其他資訊的小程式.C語言
- RabbitMQ如何解決各種情況下丟資料的問題MQ
- Delphi通過IE視窗控制程式碼獲取網頁介面(IWebBrowser2)網頁Web
- javascript獲取瀏覽器視窗尺寸程式碼片段JavaScript瀏覽器
- javascript獲取window視窗的尺寸JavaScript
- jQuery下獲取瀏覽器、可視範圍及其他的各種寬高jQuery瀏覽器
- 深入分析幾種PHP獲取客戶端IP的情況轉PHP客戶端
- js獲取瀏覽器視窗尺寸程式碼例項JS瀏覽器
- Java獲取Spring的各種物件JavaSpring物件
- 視窗屬性的獲取函式函式
- 對多種情況下控制檔案的理解與疑問,請指正。
- Delphi獲取所有開啟的IE視窗的網頁原始碼網頁原始碼
- js獲取瀏覽器視窗的大小JS瀏覽器
- Qt 彈出的子頁面在未關閉的情況下,關閉主窗體,程式不退出的情況解決QT
- 如何這沒有顯示器的情況下獲取樹莓派IP?樹莓派
- NoClassDefFoundError的兩種情況Error
- 低程式碼開發需要 DevSecOps 的四種情況dev
- 關於父視窗獲取跨域iframe子視窗中的元素跨域
- javascript獲取視窗和螢幕解析度等尺寸程式碼JavaScript
- 資料庫事務併發問題----各種事務隔離下的情況資料庫
- SWT的視覺化控制元件的X11視窗控制程式碼簡介視覺化控制元件
- jQuery獲取各種input輸入框的值jQuery
- Oracle獲取繫結變數的各種方法Oracle變數
- 如何在cmd視窗關閉情況下保持後臺啟動docsify?
- 變數轉化為判斷條件時的各種情況變數
- vue日記②之相容各種情況的可跳轉連結Vue
- 直接理解轉置卷積(Transposed convolution)的各種情況卷積
- Android程式碼獲取CPU執行情況Android