随笔-145  评论-173  文章-70  trackbacks-0

功能:
四个编辑框,对应的是姓名,年龄,年级和电话。其中年龄需要用到一个spin,就是上下点击的,可以相应的数据加1或者减1.
点击输入后,可以成功的显示你的信息。

注意的地方:
1.对于spin的使用。
首先就是如何响应它的消息,也就是自定义你的函数。对于默认的,当然是加1或者减1了。可是如何写个性化的呢?
比如,自定义的话就是加2或者加3呢?
很简单,看看我写的响应代码:

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 ;    //默认值的iDelta是为1的,即加减为1
    if(m_age < 0)
        m_age 
= 0;
    
if(m_age > 100)
        m_age 
= 100;
    UpdateData(FALSE);
    
*pResult = 0;
}

注意这个函数如何编写,切换到消息列表,然后对于SPIN控件,响应的消息就是UDN_DELTAPOS,所以需要响应的响应这个函数,自动生成了前后个一句的代码。然后看看上面,有个UpdateData函数,注意这个函数的巨大功效,后面会继续说到。
里面的就是处理的函数了,处理完后,还是要调用这个函数来显示出来。

我想说的是:将控件和变量想关联的巨大好处,看到没有,将这个控件和变量关联,直接可以控制m_age,从而可以直接使得输出发生相应的变化。
不必要再得到相应控件的ID,得到内容,再加1,或者其他。

响应按钮的函数:
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);
}
 


最后一个就是默认的退出按钮了:

void CTest14Dlg::OnButton2() 
{
    
// TODO: Add your control notification handler code here
    CDialog::OnCancel();
}



我的BUG:

输入后就是没有显示的输出,明明编辑框有内容,为何没有输出呢?
看看书上,我真傻,书上点击代码后,总是要UpdateData()一下,这样就是使得那些控件的内容写入到你的变量之中啊。
如果没有写入,初始值当然为0,此时,才不会有输出呢!

总结:
绑定控件有好处,给每个控件一个对于的变量名和类型,控制它的内容,真好!!!!
下载地址:http://www.cppblog.com/Files/deercoder/test14.rar
posted on 2010-02-05 23:25 deercoder 阅读(250) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理