注册 登录
编程论坛 C++教室

请教各位一个问题

china25qd 发布于 2007-09-06 21:52, 442 次点击

请问在MFC中,如何在文本框中添加新的内容的同时不覆盖老的内容?
我只知道用C中的"strcat"可以如此实现,但是在MFC中我不知道"strcat"如何去用.

比方说:
有一个textbox的成员变量为 m_Edit1;
一个BTN为 btn_1;
void clickbtn_1(){
m_Edit1.SetWindowText(CString("abc"));
}
可以把"abc"写进文本框
但是,第二个按钮 btn_2;
void clickbtn_2(){
m_Edit1.SetWindowText(CString("def"));
}
却会把前面的内容覆盖掉.
那么如何才能在文本框里实现第二个按钮的内容接着第一个按钮的内容(abcdef)呢?

[此贴子已经被作者于2007-9-6 21:53:30编辑过]

4 回复
#2
PcrazyC2007-09-07 01:46
void clickbtn_2(){
CString str;
m_Edit1.GetWindowText(&str);
m_Edit1.SetWindowText(str+CString("def"));
}
试试这样看行不?
#3
china25qd2007-09-07 21:46
多谢楼上!
#4
china25qd2007-09-08 11:36
我用了这段代码:
void clickbtn_2(){
CString str;
m_Edit1.GetWindowText(str);
m_Edit1.SetWindowText(str+CString("def"));
}
确实解决了字段覆盖的问题.
但是这段代码只能在所有字段的后面添加新的字段,却不能在原有字段中插入新的字段.
比如:
(a + b)*c
我们输入的时候习惯先输入"()*c",然后在"()"里插入a + b字段.
请问如何用MFC来实现这样的效果.
#5
PcrazyC2007-09-08 18:26
这个也可以啊,具体看你要怎样插入,比如上面说的例子,如果你要插入()中间,你就先在字符串STR中查找到()的位置,然后再在这个位置插入a+b就是了,有关查找和插入的函数都包含在CSTRING这个类中,你去查一上MSDN吧,具体实现我就不做了
1