MFC中,如何在根據控制項控制代碼獲取控制項物件

2021-03-08 21:56:02 字數 3339 閱讀 2272

1樓:匿名使用者

首先在你自己的類bai中定義一du

個要使用這個zhi控制項的變數dao

,比如:dlgfacerecg dlgfacerecg;

// cfrocxctrl 訊息處理程式回int cfrocxctrl::oncreate(lpcreatestruct lpcreatestruct)

2樓:匿名使用者

其成員函式baic***box::fromhandle(hwnd hwnd)

寫個示例不知道

du變下。。

zhi。

完整如dao下:

c***box* ***;

hwnd hwnd = getdlgitem(hwnd,idc_xx)->getsafehwnd();//這個hwnd是控制項內的。。。

*** = (c***box*)fromhandle(hwnd);

請注意你用與容不用::的區別,

那這樣一句就ok了

cwnd* pctrl = this->fromhandle(::getdlgitem(hwnd,idc_xx));

注意這裡fromhandle是cwnd的乙個靜態函式,也就是說

我上面的這句只能用在cwnd或者cwnd的子類,如cdialog,或者你自己的繼承自cwnd的類中!!!!

3樓:兩瓶可樂

(c***box *)getdlgitem(idc_disk)->enablewindow(true);

mfc如何獲得視窗中控制項的控制代碼

4樓:匿名使用者

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

id_***為該控制項的資**號

然後源強制轉bai換為你的控制項指du

針型別就可以zhi了。dao

例如:class cmyclass ;

m_pmydlg-> getdlgitem(idc_edit1)-> setwindowtext( "are you ok? ");

5樓:

cwnd *pwnd = getdlgitem(id_***); // 取得控制項的指標

hwnd hwnd = pwnd->getsafehwnd(); // 取得控制項的控制代碼

6樓:匿名使用者

在子視窗中定義:

cwnd *pwnd = null;

pwnd = getparent();//返回父視窗控制代碼獲得父視窗控制代碼你就可以為所欲為了。

7樓:匿名使用者

cwnd *pwnd=getdlgitem(id值);

pwnd->相關屬性和函式。

8樓:匿名使用者

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

mfc中怎樣獲取指定視窗的控制代碼

9樓:匿名使用者

控制代碼獲取方法(獲取該視窗的控制代碼後,即可向該視窗類類傳送訊息、處理程式):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_***bo3)->m_hwnd :引數為 該控制項的id,返回值為:

cwnd* 型別,但它是cwnd類內的函式,因此要先獲取控制項所在視窗的指標,如:

cstring str(_t("dd"));

::sendmessage(afxgetmainwnd()->getdlgitem(idc_***bo3)->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

知道視窗的控制代碼,怎麼取得視窗裡控制項的控制代碼

10樓:匿名使用者

兩種辦法.

findwindow得到控制代碼之後:

1.通過findwindowex得到控制項控制代碼,這個有層次限制2.通過enumwindows遍歷所有控制項得到控制項控制代碼

如何在sql誾句select中根據某個字段值修改另外一

update table set col2 case when col1 條件bai1 then 值 du1 when col1 條件2 then 值2 或者分zhi為幾句修改dao update table set col2 值1 where col1 條件1 update table set c...

如何獲取repeater控制項中的資料

1.設定你的按鈕的commandargument和commandname屬性。2.為你的repeater繫結itemcommand事件3.在itemcommand事件處理程式裡通過e.item.dataitem就可以得到繫結到這一行上的資料實體了 這裡的e是事件處理方法的第二個引數名字 ps 你確定...

C中的Treeview控制項如何使用

首先在treeview選擇事件afterselect雙擊在寫 簡單寫兩個其他的都一樣 private void treeview3 afterselect object sender,treevieweventargs e 自己寫的例題 參考下 string sql select name from...