VC中控制代碼 指標 ID之間的轉換

2021-07-04 20:48:26 字數 1727 閱讀 3053

控制代碼到指標 

cwnd* pwnd=cwnd::fromhandle(hwnd); //a temporary cwnd object is created //and attached. 

pwnd->attach(hwnd); //attaches a windows window to a cwnd object

從指標到控制代碼 

hwnd hwnd=pwnd->getsafehandle(); 

hwnd=pwnd->m_hwnd;

附註:獲得視窗控制代碼三種方法

1.hwnd findwindow(lpctstr lpclassname, lpctstr lpwindowname)

hwnd findwindowex(hwnd hwndparent, hwnd hwndchildafter,lpctstr lpclassname, lpctstr lpwindowname)

2.hwnd windowfrompoint(point& point)//獲得當前滑鼠游標位置的視窗hwnd

vc++中有關控制代碼和指標及其轉換

1.mfc視窗的控制代碼和指標的轉換

(1) 一般視窗物件都會有乙個其對應的控制代碼變數,所以我們可以取此物件的m_hwnd屬性來得到控制代碼。

(2)使用getsafehwnd函式取得程式所在視窗類的控制代碼

(3)使用fromhandle函式來通過控制代碼得到其想要的指標

其他的一些方法:

getactivewindow 取當前活動視窗控制代碼

afxgetmainwnd   取主視窗控制代碼

getforegroundwindow 取前台視窗控制代碼

findwindow尋找引數指定的視窗

enumwindow列舉視窗

2. 上下文無關裝置的控制代碼和指標的轉換

(1)this->m_hdc

(2)cdc::getsafehdc 

(3)可以使用fromhandle函式來通過控制代碼得到其想要的指標

3.gdi物件的控制代碼和指標的轉換

(1)this->m_hobject

(2)cgdiobject::getsafehandle

(3)可以使用fromhandle函式來通過控制代碼得到其想要的指標

4.視窗、控制項的指標和控制代碼的相互轉化

(1)指標轉化為控制代碼

在mfc應用程式中首先要獲得視窗的指標,然後將其轉化為控制代碼

cwnd* pwnd;

handle hwnd = pwnd->getsafehwnd();

(2)控制代碼轉化為指標

在mfc應用程式中首先獲得對話方塊控制項的控制代碼,然後獲得其指標

handle hwnd;

getdlgitem(idc_***,&hwnd);

cwnd * pwnd = fromhandle(hwnd);

獲得程式視窗指標的辦法

(1)獲得主框架視窗指標(任何時候都可以用,只要是mfc程式中)

cwnd* pwnd = afxgetmainwnd();

(2)獲得對話方塊中控制項指標

cwnd* pwnd = getdlgitem(idc_***);

(3)獲得對話方塊中某控制項的控制代碼

handle getdlgitem(m_hdlg,m_nid_dlgitem);

(4)獲得gdi物件的控制代碼

handle m_hgdiobj = m_pgdiobj->getsafehanle();

mfc中id,控制代碼,指標

win32直接操作的是控制代碼handle,每個控制代碼就對應windows視窗,而vc對handle進行類封裝,間接操作的都是handle,現在控制代碼只是類的乙個成員變數。從控制代碼到指標 cwnd pwnd cwnd fromhandle hwnd a temporary cwnd objec...

程序和執行緒控制代碼和ID之間轉換函式

獲取當前程序控制代碼handle getcurrentprocess void 獲取當前執行緒控制代碼handle getcurrentthread void 獲取當前程序iddword getcurrentprocessid void 獲取當前執行緒iddword getcurrentthread...

SDK 程式設計中視窗ID,控制代碼,指標三者相互轉換函式

sdk程式設計中視窗id,控制代碼,指標三者相互轉換函式 id handle hwnd三者之間的互相轉換 id 控制代碼 hwnd getdlgitem hparentwnd,id id 指標 cwnd getdlgitem 控制代碼 id id getwindowlong hwnd,gwl id ...