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

功能介绍:左边一个编辑框,输入,右边一个编辑框,输出。当输入超过100个字符时,提示信息。

核心代码:

void CTest13Dlg::OnChangeEdit1() 
{
    
// TODO: If this is a RICHEDIT control, the control will not
    
// send this notification unless you override the CDialog::OnInitDialog()
    
// function and call CRichEditCtrl().SetEventMask()
    
// with the ENM_CHANGE flag ORed into the mask.
    
    
// TODO: Add your control notification handler code here
    UpdateData(TRUE);
     m_write
=m_read;
    UpdateData(FALSE);
}


void CTest13Dlg::OnMaxtextEdit1() 
{
    
// TODO: Add your control notification handler code here
    MessageBox("本文本框只能输入100个字符");
}


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



截图部分:

两点,一点就是添加变量,实际上就是在ClassWard中的添加,这个已经熟悉。
另外一个就是输入100个的限制,看见下面的那个Maximum限制中的吗?填入100即可!(为了这个,可是找了好久才发现!)

再次强调UpdateData函数的作用:
1.参数为TRUE的时候,将控件内容传入变量。参数为FALSE的时候,将内容传递给控件。
2.实现之间的信息交换,因为是对于每一个控件(有关联的变量的),所以只要有消息,就会启动这个函数,实现读入,写出。

响应的消息:
1.EN_CHANGE,控件的内容只要变化,就响应相应的函数。
2.EN_MAXTEXT,控件的内容超过限制的时候,响应。

如何添加:
在上面CLASSWard中,选中控件,然后双击消息添加,同时会产生函数。

我的BUG:

我承认我很粗心,就是将这两个控件取名相反,然后照着书上的代码写,于是悲剧了,无法写入左边的编辑框。
为何?
因为那个函数使得每次左边的变化的时候,都要将右边的编辑框内容放入左边,于是从来都是空的,当然写不进去了。。

关键:
1.如何利用工具,特别是那些消息。如何响应,函数。。
2.细节。很多东西都帮我们做好了,所以需要注意。。。。
3.我觉得目前对于MFC的学习有了些理解,就是消息,函数,有控件,就有消息,就可以双击消息产生相应的函数来响应。只是不同的响应不同,从而决定了你细节方面不同,比如这里,就是利用那个UpdateData函数来实现。而设置大小也是细节。但是添加消息和函数的操作,则是基本动作,点击右边,消息,然后看看对应的控件,那些需要我们做的,然后去编写函数。
下载地址:http://www.cppblog.com/Files/deercoder/test13.rar
posted on 2010-02-05 22:09 deercoder 阅读(450) 评论(0)  编辑 收藏 引用

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