mfc 獲取按鈕控制代碼,mfc下怎麼獲取工具欄按鈕控制代碼?

2021-03-24 18:17:52 字數 4425 閱讀 5648

1樓:匿名使用者

樓上的別亂教 getdlgltem是用來獲取子視窗或者控制項的指標的

關於如何在mfc中獲取控制項控制代碼

在win32利用api來程式設計時 我們是通過hwnd = createwindow( ... )來建立乙個窗體,同時返回乙個控制代碼

mfc中的視窗類和控制項類都是又乙個基類cwnd派生出來的

mfc裡封裝了createwindow( ... )的過程

所以cwnd類本來自己就有乙個控制代碼成員為m_hwnd

所以只要獲得了視窗或者控制項的指標 就可以呼叫成員變數m_hwnd來獲取控制代碼

例如在當前視窗或者控制項下操作 就可以直接用this指標 this->m_hwnd

另外 getsafehwnd 這個函式也可以試試 具體情況具體分析

具體用法看msdn吧

記住一點的是 mfc中的訊息對映的過程就是通過指標與控制代碼的對映來實現的

2樓:匿名使用者

getdlgltem()函式

函式功能:該函式檢索指定的對話方塊中的控制項控制代碼。

函式原型:hwnd getdlgltem(hwnd hdlg,int nlddlgltem);

3樓:匿名使用者

btn.m_hwnd

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樓:匿名使用者

李白《夢遊天姥吟留別》安能摧眉折腰事權貴,使我不得開心顏。

mfc 什麼叫當前dc 用getdc獲得.什麼叫hwnd?如果我按乙個按鈕,那麼獲取的是按鈕的控制代碼?

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

10樓:匿名使用者

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

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

,比如:dlgfacerecg dlgfacerecg;

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

11樓:匿名使用者

其成員函式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的類中!!!!

12樓:兩瓶可樂

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

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

13樓:匿名使用者

控制代碼獲取方法(獲取該視窗的控制代碼後,即可向該視窗類類傳送訊息、處理程式):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

mfc中乙個按鈕是idc_button1,用什麼方法得到這個按鈕的控制代碼?

14樓:金笛

如果要在外部呼叫可以這樣,先取得父視窗的控制代碼hwnd hwnd;

::getdlgitem(hwnd, idd_dialog1);//idd_dialog1父視窗的id.

cwnd* pwnd = cwnd::fromhandle(hwnd); //父視窗指標

pwnd->getdlgitem(idc_button1)); 就得到了銨鈕的指標了。

內部直接用就ok了。

15樓:匿名使用者

getdlgitem()

如何從MFC中獲取dialog窗體的寬度及大小等資訊

在你的對話類中響應wm size訊息,系統將自動生成乙個onsize 函式,在該函式裡面新增下面 就可以得到 void cdatafileimportdlg onsize uintntype,intcx,intcy rect 中就有你想要寬度,大小等資訊。在 想獲得了直接呼叫入校函式就可以了 cre...

MFC做了計算器介面1 9按鈕兩個文字框想點選

沒按一次按鈕就 getdlgitemtext然後把數字或者字元新增到 文字後面 然後setdlgitemtext計算單獨做 沒按乙個數字就在陣列裡面新增乙個 然後 點加號時候把前面的數字 陣列裡提取出來 如for int i 0 i n i 然後可以讓sum等於之前輸出的 數 計算時候 就是 先記錄...

兄弟牌MFC 7360怎麼清零

兄弟7360印表機加粉清零方法碳粉清零 1 開啟前蓋2 按清除鍵,顯示跟換硒鼓,不理它。3 再按啟用鍵,然後按00,過幾秒就可以關前蓋,就可以了。硒鼓清零 1 開啟前蓋2 按清除鍵,顯示跟換硒鼓 1是2否 按1,過幾秒就可以關前蓋,就可以了。碳粉清零 開啟前蓋按清除鍵顯示跟換硒鼓不理它再按啟用鍵然後...