獲取視窗的控制代碼方法總結

2021-07-14 14:59:13 字數 1733 閱讀 9064



控制代碼獲取方法(獲取該視窗的控制代碼後,即可向該視窗類類傳送訊息、處理程式):

例如:::postmessage("控制代碼", wm_user_drawviewpic_eds, 0, 0);

0。獲取所在類視窗的控制代碼:

this->m_hwnd

1。主視窗的控制代碼:

無論在主視窗類內,還是子視窗類內,獲取主視窗控制代碼的方法:

afxgetmainwnd()->m_hwnd,

如:::sendmessage(afxgetmainwnd()->m_hwnd , wm_my_dosome , 0 ,(lparam)i);

在視窗類中

this->m_hwnd

或者this->getsafehwnd()

2。子視窗控制代碼:用findwindow,(只要知道子視窗的名字即可)如:

::findwindow(null,windowsname) 

返回找到的視窗的控制代碼

尋找當前視窗是否在執行windowname的程式,該名字為視窗名字,如:

cwnd* pwnd=findwindow(null,_t("清芝--支票機"));//

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

源文件

3。獲取視窗中 控制項的控制代碼,用 getdlgitem

語法為:getdlgitem(idc_combo3)->m_hwnd :引數為 該控制項的id,返回值為:cwnd* 型別,但它是cwnd類

內的函式,因此要先獲取控制項所在視窗的指標,如:

cstring str(_t("dd"));

::sendmessage(afxgetmainwnd()->getdlgitem(idc_combo3)->m_hwnd, wm_settext , 0 , (lparam)

str.getbuffer(0));

從控制代碼獲得指標,用 fromhandle

語法:cwnd* pwnd = cwnd::fromhandle(hwnd);

獲取視窗控制代碼(全集) vc&mfc 

獲得視窗控制代碼:

this->m_hwnd

hwnd getforegroundwindow(void);

getsafehwnd 取你程式所在視窗類的控制代碼

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

afxgetmainwnd 取主視窗控制代碼

getforegroundwindow 取前台視窗控制代碼

findwindow

enumwindow

MFC獲取視窗控制代碼的方法

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

c 獲取視窗控制代碼的方法

findwindow 函式原型 hwnd findwindow lpcstr lpclassname,lpcstr lpwindowname findwindow這個函式檢索處理頂級視窗的類名和視窗名稱匹配指定的字串。這個函式不搜尋子視窗。lpclassname引數指向類名,lpwindowname...

獲取視窗控制代碼

在windows中,控制代碼是乙個系統內部資料結構的引用。例如當你操作乙個視窗,或說是乙個delphi窗體時,系統會給你乙個該視窗的控制代碼,系統會通知你 你正在操作142號視窗,就此你的應用程式就能要求系統對 142號視窗進行操作 移動視窗 改變視窗大小 把視窗最小化等等。實際上許多windows...