1. 程式人生 > >VC中獲取視窗控制代碼的各種方法

VC中獲取視窗控制代碼的各種方法

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風格,因此,即使該視窗被其他視窗遮蓋,函式返回值也為非零。
備註:

相關推薦

VC獲取視窗控制各種方法

AfxGetMainWnd獲取自身視窗控制代碼 HWND hWnd = AfxGetMainWnd()->m_hWnd; GetTopWindow 函式功能:該函式檢查與特定父視窗相聯的子視窗z序(Z序:垂直螢幕的方向,即疊放次序),並返回在z序頂部的子視窗的控制代碼。 函式原型:HWND GetTop

VC獲取視窗控制各種方法 .

 AfxGetMainWnd AfxGetMainWnd獲取自身視窗控制代碼 HWND hWnd = AfxGetMainWnd()->m_hWnd; GetTopWindow 函式功能:該函式檢查與特定父視窗相聯的子視窗z序(Z序:垂直螢幕的方向,即疊放次序),並返回在z序頂部的子視窗的控制代碼。 函

MFC獲取視窗控制方法

AfxGetMainWnd AfxGetMainWnd獲取自身視窗控制代碼 HWND hWnd = AfxGetMainWnd()->m_hWnd; GetTopWindow 函式功能:該函式檢查與特定父視窗相聯的子視窗z序(Z序:垂直螢幕的方向,即疊放次序),並返回

VC++實現spy++獲取視窗控制的功能

在WM_MOUSEMOVE 訊息中實現如下程式碼: void CInputMethodTestDlg::OnMouseMove(UINT nFlags, CPoint point) {// TODO: 在此新增訊息處理程式程式碼和/或呼叫預設值if (GetCapture(

按鍵精靈 -獲取視窗控制

MessageBox "視窗右下角座標:" get_window_pos //得到當前最前面的視窗控制代碼-就是把需要的視窗啟用在最前面 Hwnd = Plugin.Window.Foreground() //得到滑鼠指向的視窗控制代碼Hwnd = Plugin.Window.Mo

根據程序ID 獲取視窗控制

 using namespace System;using namespace System::Diagnostics;using namespace System::ComponentModel; Process *m_pCurProcess = Process::GetProcessById(

Selenium:多視窗切換(獲取視窗控制handle)

我們在操作網頁的時候,點選有些頁面的連結,會重新開啟一個視窗,我們要在新頁面上操作,就得切換視窗 比如在百度首頁的登入框點選註冊,會重新開啟一個註冊的新頁面,要在新頁面註冊,就得先切進新頁面 那我們怎麼在這兩個視窗之間進行切換呢?每個瀏覽器視窗都有一個唯一的屬性控制代碼(handle)來表示,我們就可

[WinAPI] 獲取視窗控制的幾種方法

1、使用FindWindow函式獲取視窗控制代碼 示例:使用FindWindow函式獲取視窗控制代碼,然後獲得視窗大小,並且移動視窗到指定位置。 我們想獲得酷我音樂盒的視窗控制代碼並移動它,該怎麼辦呢? 首先開啟VC或者VS裡面tool中的SPY++點選查詢視

AutoIt3 使用程序名獲取視窗控制

背景 需要用AutoIt3控制QQ音樂播放器,首先要獲取QQ音樂的視窗控制代碼 問題 WinGetHandle方法不能滿足要求 QQ音樂的Title會根據當前播放的歌曲動態改變

幾個獲取視窗控制函式

AfxGetMainWnd AfxGetMainWnd獲取自身視窗控制代碼 HWND hWnd = AfxGetMainWnd()->m_hWnd; GetTopWindow 函式功能:該函式檢查與特定父視窗相聯的子視窗z序(Z序:垂直螢幕的方向,即疊放次序),並返回在z序頂部的子視窗的控制代碼。 函式

C#獲取視窗控制概念和方法例項

在Windows中,控制代碼是一個系統內部資料結構的引用。例如當你操作一個視窗,或說是一個Delphi窗體時,系統會給你一個該視窗的控制代碼,系統會通知你:你正在操作142號視窗,就此你的應用程式就能要求系統對142號視窗進行操作——移動視窗、改變視窗大小、把視窗極小化為圖

VC 各種情況下的視窗控制獲取

AfxGetMainWnd AfxGetMainWnd獲取自身視窗控制代碼 HWND hWnd = AfxGetMainWnd()->m_hWnd; GetTopWindow 函式功能:該函式檢查與特定父視窗相聯的子視窗z序(Z序:垂直螢幕的方向,即疊放

MFC視窗控制控制元件控制獲取

1. 程式主視窗控制代碼的獲得     CWnd* p = AfxGetMainWnd();//函式AfxGetMainWnd()獲得主對話方塊的指標p     HWND h = p->m_hW

MFC獲取其他類、視窗控制等相關函式

轉載自http://blog.csdn.net/xiaoyun8822/article/details/7939605 一般我們使用的框架是VC提供的Wizard生成的MFC App Wizard(exe)框架,無論是多文件還是單文件,都存在指標和控制代碼獲取和操作問

在DLL獲取主程序視窗控制

有的時候難免需要在DLL中獲取主程序的視窗控制代碼,比如在DLL注入的時候等等。那麼如何在DLL中獲取主程序的視窗控制代碼呢?可以通過EnumWindows來實現。先通過GetCurrentProcessId獲取程序的PID,然後在EnumWindows中呼叫GetWind

從父視窗獲取視窗控制以及其例項控制

獲取父視窗控制代碼 HWND hWnddlg = AfxGetMainWnd()->m_hWnd;  //主視窗控制代碼 或者 HWND hWnddlg = this->m_hWnd; //主視窗控制代碼 獲取子視窗控制代碼 如果子視窗是控制元件,並有控制元件

WPF 視窗控制獲取和設定

WPF 視窗控制代碼設定和獲取 1、控制代碼類 WHwnd.cs public class WHwnd { /// <summary> /// 主窗體控制代碼 /// </summar

MFC 獲取當前視窗控制,或者父子視窗控制

父子視窗 在子視窗中,需要用到父視窗的控制代碼: AfxGetMainWnd()->m_hWnd 注:在父視窗中,也可以這麼用來呼叫自己視窗的控制代碼 在子視窗中,需要用到自己視窗的控制代碼 ChildDlg *pChildDlg ; pChildDlg->m_h

獲取ArcMap視窗控制,通過WinAPI獲取工作空間中點選要素的系統桌面座標

這裡用了個“桌面座標”,是希望區分一下ArcGis的“螢幕座標”(與之對應的還有一個“地理座標”)。 什麼是“螢幕座標”呢?使用ITool介面的OnMouseDown方法獲取的“x,y”值即是,其原點值在“工作空間”窗體左上角。 什麼是我所稱謂的“工作空間”呢?它是資料編輯區域,用Spy++檢視一下其窗體

C#獲取當前活動視窗控制

c# 獲取當前活動視窗控制代碼,獲取視窗大小及位置 2018年04月26日 13:48:21 漂泊_人生 閱讀數:1889   需呼