句柄hWnd=::GetDlgItem(hParentWnd,id);id->指針CWnd::GetDlgItem();句柄->idid=G">
VC++窗口句柄和指針的相互轉(zhuǎn)換.doc

VC++窗口句柄和指針的相互轉(zhuǎn)換.doc

ID:57691150

大小:13.50 KB

頁(yè)數(shù):2頁(yè)

時(shí)間:2020-09-01

VC++窗口句柄和指針的相互轉(zhuǎn)換.doc_第1頁(yè)
VC++窗口句柄和指針的相互轉(zhuǎn)換.doc_第2頁(yè)
資源描述:

《VC++窗口句柄和指針的相互轉(zhuǎn)換.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、VC中窗口ID,句柄,指針三者相互轉(zhuǎn)換函數(shù)ID--HANDLE--HWND三者之間的互相轉(zhuǎn)換id->句柄hWnd=::GetDlgItem(hParentWnd,id);id->指針CWnd::GetDlgItem();句柄->idid=GetWindowLong(hWnd,GWL_ID);句柄->指針CWnd*pWnd=CWnd::FromHandle(hWnd);指針->IDid=GetWindowLong(pWnd->GetSafeHwnd,GWL_ID);GetDlgCtrlID();指針->句

2、柄hWnd=cWnd.GetSafeHandle()ormywnd->m_hWnd;指針的使用在編程過(guò)程中至關(guān)重要,恰到好處并能正確無(wú)誤的使用指針不但能夠提高程序自身的運(yùn)行效率,而且有助于節(jié)省程序執(zhí)行所需要消耗的資源。指針對(duì)應(yīng)著某個(gè)數(shù)據(jù)在內(nèi)存空間中的地址,得到了指針就可以自由地修改該數(shù)據(jù)。句柄代表指針的“指針”,也可以將其比作表中數(shù)據(jù)項(xiàng)的索引值(表對(duì)應(yīng)某個(gè)進(jìn)程自身的內(nèi)存空間)。句柄是間接的引用對(duì)象。指針和句柄的不同之處:句柄所指的可以是一個(gè)很復(fù)雜的結(jié)構(gòu),并且很有可能與系統(tǒng)有關(guān)的,比如上面所說(shuō)線程的句柄,

3、它指向的就是一個(gè)類或者結(jié)構(gòu),它和系統(tǒng)有很密切的關(guān)系。當(dāng)一個(gè)線程由于不可預(yù)料的原因而終止時(shí),系統(tǒng)就可以通過(guò)句柄來(lái)回收它所占用的資料,如CPU,內(nèi)存等等。反過(guò)來(lái)想,這些句柄中的某一些,是與系統(tǒng)進(jìn)行交互用的。指針?biāo)部梢灾赶蛞粋€(gè)復(fù)雜的結(jié)構(gòu),但通常是由用戶自我定義的,所以一些必需的工作都要由用戶自己完成,特別是在刪除的時(shí)候。另外需要注意的是句柄往往有自己的存在區(qū)限,比如一個(gè)進(jìn)程,如果將其傳遞到另一個(gè)進(jìn)程中,句柄也就失去了意義(表中數(shù)據(jù)項(xiàng)的索引值,索引離開(kāi)了具體的表也就失去了意義)。具體轉(zhuǎn)換:(句柄轉(zhuǎn)為指針)CW

4、nd*pWnd=FromeHandle(hMyHandle);pWnd->SetWindowText("HelloWorld!");orCWnd*pWnd;pWnd->Attach(hMyHandle);MFC類中有的還提供了標(biāo)準(zhǔn)方法,比如Window句柄:staticCWnd*PASCALFromHandle(HWNDhWnd);HWNDGetSafeHwnd()const;對(duì)于位圖:staticCBitmap*PASCALFromHandle(HBITMAPhBitmap);staticCGdiOb

5、ject*PASCALFromHandle(HGDIOBJhObject);HGDIOBJGetSafeHandle()const;當(dāng)然,更詳細(xì)的信息需要在具體使用中自我查詢。建議:指針和句柄的使用屬于比較復(fù)雜、危險(xiǎn)性較高的應(yīng)用,在具體實(shí)踐中,如果可以,盡量不要使用指針和句柄,最好選擇現(xiàn)有的、封裝完好的方式來(lái)實(shí)現(xiàn),更別提指針同句柄的轉(zhuǎn)換了,它更加危險(xiǎn)。比如在操作字符串時(shí),盡量使用CString類來(lái)實(shí)現(xiàn),通過(guò)定義好的構(gòu)造、析構(gòu)函數(shù)來(lái)完成分配和回收,最好不要通過(guò)指針來(lái)動(dòng)態(tài)操作。

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。