1、通過相關函式進行訪問
cwnd::getdlgitem通常通過控制項的id來獲取指向控制項的指標,以便進一步對控制項的操作
cwnd::getwindowtext獲取乙個窗體的caption或者控制項上的文字
cwnd::setwindowtextsets thewindow』s title to the specified text. if the window is a control, the textwithin the control is set
**如下:
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);
num2=atoi(ch2);
num3=num1+num2;
itoa(num3,ch3,10);
getdlgitem(idc_edit3)->setwindowtext(ch3);
cwnd::getdlgitemtext其功能相當於cwnd::getdlgitem和cwnd::getwindowtext的總功能
cwnd::setdlgitemtext其功能相當於cwnd::setdlgitem和cwnd::setwindowtext的總功能
**如下:
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);
對靜態文字框進行操作的**如下:
voidctestdlg::onnumber1()
else
}
remarks:
因為靜態文字框主要是用來顯示文字的,一般不對其進行事操作,所以微軟預設的將所有的靜態文字框的id統一設定成idc_static,如果非要對靜態文字框進行操作,首先需要更改其id,其次需要將其styles屬性中的notify(通告)勾上,勾上之後才能產生通告訊息(訊息非為標準訊息,命令訊息和通告訊息)
對於逗號表示式,形如x1,x2,x3…….xn其執行的順序是從左到右的順序依次執行,整個逗號表示式的值是最後乙個表示式xn的值。
cwnd::getdlgitemint根據控制項的id來獲取控制項上的數值型文字
cwnd::setdlgitemint將乙個整型數設定到控制項上
**如下:
int num1,num2,num3;
num1=getdlgitemint(idc_edit1);
num2=getdlgitemint(idc_edit2);
num3=num1+num2;
setdlgitemint(idc_edit3,num3);
2、通過將乙個變數與控制項相關聯對控制項進行操作,該變數可以是一般型別的變數,也可以是控制項型別的變數。具體方法是按快捷鍵ctrl+w鍵喚出classwizard,選中membervariables選項卡,通過控制項id來新增與控制項相關聯的變數,當我們將變數與控制項相關聯之後你會發現**
voidctestdlg::dodataexchange(cdataexchange* pdx)
}afx_data_map
}
其中的注釋巨集中的dx_text()函式的作用就是將變數與指定控制項相關聯,像以的ddx_(dialog data enxchange)和以ddv_(dialog data valid)開頭的函式有很多,他倆乙個是對話方塊資料交換乙個是對話方塊資料校驗,作用都是將變數與各種型別的相關的控制項關聯,這裡就不贅述了,詳情請看msdn,
你還會發現在對話方塊類中的建構函式中將變數進行初始化了(看注釋巨集之間的**)
ctestdlg::ctestdlg(cwnd*pparent /*=null*/)
: cdialog(ctestdlg::idd, pparent)
}afx_data_init
m_biscreated=false;
}
注意:要想使從控制項上輸入的數字賦值到相關聯的變數上,必須呼叫cwnd::updatedata函式,並且設定引數為true,也可以不設定,因為其預設值是true,當對數值操作結束後還需要在呼叫一次,這一次需要將引數設定成 false如下**
voidctestdlg::onbtnadd()
else
*/updatedata();
m_num3=m_num1+m_num2;
updatedata(false);
}
3、通過sendmessage函式傳送乙個wm_gettext和wm_settext訊息來獲取和設定對話方塊文字,其中::sendmessage函式可以是win32api函式,也可以是cwnd::sendmessage
**如下:
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,0,(lparam)ch3);
4、通過cwnd::senddlgitemmessage函式傳送乙個wm_gettext和wm_settext訊息來獲取和設定對話方塊文字,該函式相當於上述的cwnd::sendmessage和cwnd::getdlgitem功能的集合
**如下:
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,0,(lparam)ch3);
//下面兩行**是用來設定複選內容的,詳情查em_setsel和em_getsel
senddlgitemmessage(idc_edit3,em_setsel,0,-1);
m_edit3.setfocus();
對話方塊控制項
單選對話方塊 newalertdialog.builder this settitle 請做出你的選擇 seticon r.mipmap.ic launcher setpositivebutton 確認 null setnegativebutton 取消 null setsinglechoiceit...
對話方塊中顯示對話方塊
一 對話方塊中顯示對話方塊的方法 1 首先建立要在對話方塊裡顯示的那個對話方塊,命名為 idd inner 設定這個對話方塊的屬性 1 style 選擇 child 中文版 樣式 選擇 下層 2 border 為 none 中文版 邊框 選擇 無 2 為了顯示時能夠準確定位,我們可以在右邊要顯示對話...
Android控制項 對話方塊
android控制項 對話方塊 分為 關鍵字 alertdialog.builder builder.show 標題欄 資訊欄 注意點 1.記得show 出來 2.alertdialog.builder 採用自定義的子布局 alertdialog.builder builder new alertd...