1. 程式人生 > >幾個獲取視窗控制代碼函式

幾個獲取視窗控制代碼函式

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 ") )

相關推薦

獲取視窗控制函式

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

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

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

按鍵精靈 -獲取視窗控制

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)來表示,我們就可

MFC獲取視窗控制的方法

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

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

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

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

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

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

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

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

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

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

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

ARX取CAD視窗控制函式

標頭檔案:rxmfcapi.h CWinApp* acedGetAcadWinApp() 返回指向AutoCAD應用程式類例項的指標 當用COM方式操作CAD的選單工具欄時會用到。 CDocument* acedGetAcadDoc() 返回指向AutoCAD檔案

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

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

有關視窗物件指標和視窗控制獲取的相關函式

順便記錄一下有關視窗物件指標和視窗控制代碼相關的函式。 Win32 API函式對視窗的操作總是需要一個視窗控制代碼(hWnd)來指向需要操作的物件;比如::SetWindowPos(hWnd,...) 而MFC內,視窗控制代碼已經包含在物件成員內,需要的是指向視窗物件的指標

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   需呼

GetWindow、GetTopWindow和GetNextWindow(視窗控制獲取!!!)

GetWindow //uCmd 可選值:   GW_HWNDFIRST = 0; {同級別第一個}   GW_HWNDLAST  = 1; {同級別最後一個}   GW_HWNDNEXT  = 2; {同級別下一個}   GW_HWNDPREV  = 3;

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

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