功能:
四個(gè)編輯框,對應(yīng)的是姓名,年齡,年級和電話。其中年齡需要用到一個(gè)spin,就是上下點(diǎn)擊的,可以相應(yīng)的數(shù)據(jù)加1或者減1.
點(diǎn)擊輸入后,可以成功的顯示你的信息。
注意的地方:
1.對于spin的使用。
首先就是如何響應(yīng)它的消息,也就是自定義你的函數(shù)。對于默認(rèn)的,當(dāng)然是加1或者減1了。可是如何寫個(gè)性化的呢?
比如,自定義的話就是加2或者加3呢?
很簡單,看看我寫的響應(yīng)代碼:
void CTest14Dlg::OnDeltaposSpin1(NMHDR* pNMHDR, LRESULT* pResult) 

{
NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR;
// TODO: Add your control notification handler code here
UpdateData(TRUE);
m_age = m_age + (int)pNMUpDown->iDelta ; //默認(rèn)值的iDelta是為1的,即加減為1
if(m_age < 0)
m_age = 0;
if(m_age > 100)
m_age = 100;
UpdateData(FALSE);
*pResult = 0;
}注意這個(gè)函數(shù)如何編寫,切換到消息列表,然后對于SPIN控件,響應(yīng)的消息就是UDN_DELTAPOS,所以需要響應(yīng)的響應(yīng)這個(gè)函數(shù),自動(dòng)生成了前后個(gè)一句的代碼。然后看看上面,有個(gè)UpdateData函數(shù),注意這個(gè)函數(shù)的巨大功效,后面會(huì)繼續(xù)說到。
里面的就是處理的函數(shù)了,處理完后,還是要調(diào)用這個(gè)函數(shù)來顯示出來。
我想說的是:將控件和變量想關(guān)聯(lián)的巨大好處,看到?jīng)]有,將這個(gè)控件和變量關(guān)聯(lián),直接可以控制m_age,從而可以直接使得輸出發(fā)生相應(yīng)的變化。
不必要再得到相應(yīng)控件的ID,得到內(nèi)容,再加1,或者其他。
響應(yīng)按鈕的函數(shù):
void CTest14Dlg::OnButton1() 

{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
char str2[20];
itoa(m_age,str2,10);
CString str = "姓名";
str += m_name;
str += "\n年齡" ;
str += str2 ;
str += "\n年級" ;
str += m_grade;
str += "\n電話";
str += m_phone;
MessageBox(str);
} 最后一個(gè)就是默認(rèn)的退出按鈕了:

void CTest14Dlg::OnButton2() 

{
// TODO: Add your control notification handler code here
CDialog::OnCancel();
}
我的BUG:
輸入后就是沒有顯示的輸出,明明編輯框有內(nèi)容,為何沒有輸出呢?
看看書上,我真傻,書上點(diǎn)擊代碼后,總是要UpdateData()一下,這樣就是使得那些控件的內(nèi)容寫入到你的變量之中啊。
如果沒有寫入,初始值當(dāng)然為0,此時(shí),才不會(huì)有輸出呢!
總結(jié):
綁定控件有好處,給每個(gè)控件一個(gè)對于的變量名和類型,控制它的內(nèi)容,真好!!!!
下載地址:http://m.shnenglu.com/Files/deercoder/test14.rar



