中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

VC++中獲取句柄的所有方法

2018-07-20    來(lái)源:open-open

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用
AfxGetMainWnd
AfxGetMainWnd獲取自身窗口句柄
HWND hWnd = AfxGetMainWnd()->m_hWnd;


GetTopWindow
函數(shù)功能:該函數(shù)檢查與特定父窗口相聯(lián)的子窗口z序(Z序:垂直屏幕的方向,即疊放次序),并返回在z序頂部的子窗口的句柄。
函數(shù)原型:HWND GetTopWindow(HWND hWnd);
參數(shù):
hWnd:被查序的父窗口的句柄。如果該參數(shù)為NULL,函數(shù)返回Z序頂部的窗口句柄。
返回值:
如果函數(shù)成功,返回值為在Z序頂部的子窗口句柄。如果指定的窗口無(wú)子窗口,返回值為NULL。

GetForegroundWindow
函數(shù)功能:該函數(shù)返回當(dāng)前系統(tǒng)的前臺(tái)窗口的窗口句柄。
函數(shù)原型:HWND GetForegroundWindow(VOID)
返回值:函數(shù)返回前臺(tái)窗回的句柄。

GetActiveWindow

函數(shù)功能:該函數(shù)可以獲得與調(diào)用該方法的線程的消息隊(duì)列相關(guān)的活動(dòng)窗口的窗口句柄(就是取得當(dāng)前進(jìn)程的活動(dòng)窗口的窗口句柄)。
函數(shù)原型:HWND GetActiveWindow(VOID)
返回值:返回值是與調(diào)用線程的消息隊(duì)列相關(guān)的活動(dòng)窗口的句柄。否則,返回值為NULL。


GetSafeHwnd
函數(shù)功能:獲取某個(gè)窗口對(duì)象(CWnd的派生對(duì)象)指針的句柄(HWND)時(shí),最安全的方法是使用GetSafeHwnd()函數(shù)。
通過(guò)下面的例子來(lái)看其理由:
CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到資源管理器
HWND hwnd = pwnd->m_hwnd; //得到它的HWND
這樣的代碼當(dāng)開(kāi)始得到的pwnd為空的時(shí)候就會(huì)出現(xiàn)一個(gè)“General protection error”,并關(guān)閉應(yīng)用程序,因?yàn)橐话悴荒軐?duì)一個(gè)NULL指針訪問(wèn)其成員,如果用下面的代碼:
CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到資源管理器
HWND hwnd = pwnd->GetSafeHwnd(); //得到它的HWND
就不會(huì)出現(xiàn)問(wèn)題,因?yàn)楸M管當(dāng)pwnd是NULL時(shí),GetSafeHwnd仍然可以用,只是返回NULL


IsWindowVisible
函數(shù)功能:該函數(shù)獲得給定窗口的可視狀態(tài)。
函數(shù)原型:BOOL IsWindowVisible(HWND hWnd);
參數(shù);
hWnd:被測(cè)試窗口的句柄。
返回值:
如果指定的窗口及其父窗口具有WS_VISIBLE風(fēng)格,返回值為非零;如果指定的窗口及其父窗口不具有WS_VISIBLE風(fēng)格,返回值為零。由于返回值表明了窗口是否具有Ws_VISIBLE風(fēng)格,因此,即使該窗口被其他窗口遮蓋,函數(shù)返回值也為非零。
備注:
窗口的可視狀態(tài)由WS_VISIBLE位指示。當(dāng)設(shè)置了WS_VISIBLE位,窗口就可顯示,而且只要窗口具有WS_VISIBLE風(fēng)格,任何畫(huà)在窗口的信息都將被顯示。


IsWindow:
函數(shù)功能:該函數(shù)確定給定的窗口句柄是否標(biāo)示一個(gè)已存在的窗口。
函數(shù)原型:BOOL IsWindow(HWND hWnd);
參數(shù):
hWnd:被測(cè)試窗口的句柄。
返回值:
如果窗口句柄標(biāo)識(shí)了一個(gè)已存在的窗口,返回值為T(mén)URE;如果窗口句柄未標(biāo)識(shí)一個(gè)已存在窗口,返回值為FALSE。


FindWindow:
HWND FindWindow(LPCSTR lpClassName,LPCSTR lpWindowName );
參數(shù):
lpClassName
指向一個(gè)以null結(jié)尾的、用來(lái)指定類名的字符串或一個(gè)可以確定類名字符串的原子。如果這個(gè)參數(shù)是一個(gè)原子,那么它必須是一個(gè)在調(diào)用此函數(shù)前已經(jīng)通過(guò) GlobalAddAtom函數(shù)創(chuàng)建好的全局原子。這個(gè)原子(一個(gè)16bit的值),必須被放置在lpClassName的低位字節(jié) 中,lpClassName的高位字節(jié)置零。
lpWindowName
指向一個(gè)以null結(jié)尾的、用來(lái)指定窗口名(即窗口標(biāo)題)的字符串。如果此參數(shù)為NULL,則匹配所有窗口名。
返回值:
如果函數(shù)執(zhí)行成功,則返回值是擁有指定窗口類名或窗口名的窗口的句柄。
如果函數(shù)執(zhí)行失敗,則返回值為 NULL ?梢酝ㄟ^(guò)調(diào)用GetLastError函數(shù)獲得更加詳細(xì)的錯(cuò)誤信息。


SetWindowText:
至于窗口標(biāo)題的改變,我們可以通過(guò)SetWindowText來(lái)實(shí)現(xiàn)
注:如果窗口本身屬性是不顯示標(biāo)題的,這個(gè)函數(shù)的調(diào)用不會(huì)影響窗口屬性。
//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 ") )

標(biāo)簽: idc 安全 代碼

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇: VC++中獲取DC的四種方法

下一篇:Java 使用 GZIP 進(jìn)行壓縮和解壓縮