MFC對話方塊控制項訪問的七種方式

2022-04-10 02:38:26 字數 2892 閱讀 3149

/* //最簡單的動態建立按鈕

if (!m_btn.m_hwnd) //視窗控制代碼不為空

else */

//實現 點選add按鈕,將 編輯框1的數 + 編輯框2 的數 放到編輯框3中

/* int num1, num2, num3;

char ch1[10], ch2[10], ch3[10];

getdlgitem(idc_edit1)->getwindowtext(ch1,10); //將編輯框的文字存到ch1中,最大10個字元

getdlgitem(idc_edit2)->getwindowtext(ch2,10);

num1 = atoi(ch1); // 將字串轉換為整型

num2 = atoi(ch2);

num3 = num1 + num2;

itoa(num3, ch3, 10); // 將整數num3 轉換到ch3中,以十進位制的方式

getdlgitem(idc_edit3)->setwindowtext(ch3); // 將ch3字元數值,存到編輯框3中

*//* //也可以

int num1, num2, num3;

char ch1[10], ch2[10], ch3[10];

getdlgitemtext(idc_edit1, ch1, 10);

getdlgitemtext(idc_edit2, ch2, 10);

num1 = atoi(ch1); // 將字串轉換為整型

num2 = atoi(ch2);

num3 = num1 + num2;

itoa(num3, ch3, 10);

setdlgitemtext(idc_edit3, ch3);

*//* //還可以

int num1, num2, num3;

num1 = getdlgitemint(idc_edit1); // 直接獲得編輯框中的數值

num2 = getdlgitemint(idc_edit2);

num3 = num1 + num2;

setdlgitemint(idc_edit3, num3);

*//* //最簡單的一種,用classwizard 關聯 控制項與成員變數(以值)

updatedata();

m_num3 = m_num2 + m_num1;

updatedata(false);

*//* //第五種方式 用classwizard 關聯 控制項與成員變數(以控制項)。與第一種相似

int num1, num2, num3;

char ch1[10], ch2[10], ch3[10];

m_edit1.getwindowtext(ch1, 10);

m_edit2.getwindowtext(ch2, 10);

num1 = atoi(ch1); // 將字串轉換為整型

num2 = atoi(ch2);

num3 = num1 + num2;

itoa(num3, ch3, 10);

m_edit3.setwindowtext(ch3);

*//* //第六種方式,傳送訊息

int num1, num2, num3;

char ch1[10], ch2[10], ch3[10];

//::sendmessage(getdlgitem(idc_edit1)->m_hwnd, wm_gettext, 10, (lparam)ch1);

//::sendmessage(m_edit1.m_hwnd, wm_gettext, 10, (lparam)ch1);

//getdlgitem(idc_edit1)->sendmessage(wm_gettext, 10, (lparam)ch1);

m_edit1.sendmessage(wm_gettext, 10, (lparam)ch1); //以上四句等價

m_edit2.sendmessage(wm_gettext, 10, (lparam)ch2);

num1 = atoi(ch1); // 將字串轉換為整型

num2 = atoi(ch2);

num3 = num1 + num2;

itoa(num3, ch3, 10);

m_edit3.sendmessage(wm_settext, 10, (lparam)ch3);

*/ //第七種方式

int num1, num2, num3;

char ch1[10], ch2[10], ch3[10];

senddlgitemmessage(idc_edit1, wm_gettext, 10, (lparam)ch1);//直接給子控制項發訊息

senddlgitemmessage(idc_edit2, wm_gettext, 10, (lparam)ch2);

num1 = atoi(ch1); // 將字串轉換為整型

num2 = atoi(ch2);

num3 = num1 + num2;

itoa(num3, ch3, 10);

senddlgitemmessage(idc_edit3, wm_settext, 10, (lparam)ch3);

senddlgitemmessage(idc_edit3, em_setsel, 0, -1); //複選所有的文字

//getdlgitem(idc_edit3)->setfocus(); //將焦點聚到edit3. 或者

m_edit3.setfocus();

}

MFC筆記 第二節課(訪問對話方塊控制項的七種方法)

getdlgitem getwindowtext getdlgitem setwindowtext 先找到對話方塊在把對方框中的值複製到字串中 getdlgitem idc edit1 getwindowtext ch1 先找到idc edit1這個對話方塊,在把idc edit1這個對話方塊中的值...

MFC對話方塊控制項 Edit Control

edit視窗是用來接收使用者輸入最常用的乙個控制項。建立乙個輸入視窗可以使用成員函式 bool cedit create lpctstr lpsztext,dword dwstyle,const rect rect,cwnd pparentwnd,uint nid 0xffff 其中dwstyle將...

MFC對話方塊中的編輯控制項的7種操作方式

第一種方式 int num1,num2,num3 char ch1 10 ch2 10 ch3 10 getdlgitem idc edit1 getwindowtext ch1,10 getdlgitem idc edit2 getwindowtext ch2,10 num1 atoi ch1 n...