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

2021-09-08 10:30:28 字數 2402 閱讀 3069

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)

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

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

afxgetmainwnd afxgetmainwnd獲取自身窗體控制代碼 hwnd hwnd afxgetmainwnd m hwnd gettopwindow 函式功能 該函式檢查與特定父窗體相聯的子窗體z序 z序 垂直螢幕的方向,即疊放次序 並返回在z序頂部的子窗體的控制代碼。函式原型 hwn...

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

afxgetmainwnd afxgetmainwnd獲取自身窗體控制代碼 hwnd hwnd afxgetmainwnd m hwnd gettopwindow 函式功能 該函式檢查與特定父窗體相聯的子窗體z序 z序 垂直螢幕的方向,即疊放次序 並返回在z序頂部的子窗體的控制代碼。函式原型 hwn...

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

afxgetmainwnd afxgetmainwnd獲取自身窗體控制代碼 hwnd hwnd afxgetmainwnd m hwnd gettopwindow 函式功能 該函式檢查與特定父窗體相聯的子窗體z序 z序 垂直螢幕的方向,即疊放次序 並返回在z序頂部的子窗體的控制代碼。函式原型 hwn...