对话框中有三个编辑控件,要实现以下功能:
单击任意控件,使其中的字符串或数字处于选中
状态(变蓝),如何修改EN_CHENGE消息响应函数。
请给几行代码或提示。
   另外,有一个难题(自认为),在通常的书中,
串行化和字体分开讲解,现在的问题是,假设在
视图中显示有宋体5号字“请帮忙”和黑体1号字
“我不会了”,如何将他们写入文件中,使得以后
可以用“文件—〉打开—〉选择文件名(如AA.TTT)
—〉确认”方式得到该显示,而不用重绘视图方式。

解决方案 »

  1.   

    第一个问题:当得到鼠标点击的消息后,自动选择CEdit中的所有内容,用
    SetSel(-1,0)即可。
    第二个问题:将视图基类定为CRichEditView,他的串行化会自动保存字体大小、颜色等信息,还能嵌入图像,功能强大,读出文件后后自动显示。
      

  2.   

    在EN_SETFOCUS事件中   取出控件内字符串的长度, 可以通过GetWindowText或是UpdateData(TRUE)后验证对话框成员变量的长度;   SetSel( 0, len, TRUE );关于串行化和字体, 像这种情况已经属于RTF类型的属性设置,如果你不愿意用RTF统一格式,那你只能对每个字符或一组字符进行属性设置(个人意见)
      

  3.   

    同意zhangwei2001(东门吹雪) 的做法。我一直以为老兄就是想研究RTF,唉,思维定势, zhangwei2001给了我又一个教训。祝各位顺利
      

  4.   

    第二个问题(个人意见):
    不知你是否是用CDC类的Textout()输出,如是,可将CFont结构的里的
    内容串行化即可。
      

  5.   

    东门吹雪 不行,我的文件读写函数是自己写的,没串行化,SetSel(-1,0)函数无法消除原来编辑控件中的字符0,鼠标在0后单击,输入78显示为078,在0前单击,输入78,显示为780