关于CEdit 的问题。一个不是问题的问题. 用List Box 可能要简单点 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我帮你解决了!首先从CEDIT派生CMYEDIT。你应该添加几个成员变量:private : int nRowIndex; int nRowCount; CArray<CString,CString> m_ArrayString;并初始化成员变量。CMYEDIT::CMYEDIT(){ nRowIndex=0; nRowCount=10; m_ArrayString.SetSize(0,RowCount);}添加一个成员函数[EDIT文本的更新]如下:void CMYEDIT::AppendString(CString str){ CString sText=str+"\r\n"; //给文本加上换行字符 bool bFull=false; //是否已到文本允许的最大行数 int nLoop=0; m_ArrayString.Add(sText); if(nRowIndex<nRowCount) //未够指定行数 { nRowIndex+=1; } else { bFull=true; for(int i=0;i<m_ArrayString.GetSize()-1;i++) { m_ArrayString.SetAt(i,m_ArrayString.GetAt(i+1)); } m_ArrayString.RemoveAt(m_ArrayString.GetSize()-1); } //清空文本内容 sText=""; if(bFull) nLoop=m_ArrayString.GetSize(); else nLoop=nRowIndex; for(int j=0;j<nLoop;j++) { sText+=m_ArrayString.GetAt(j); } SetWindowText(sText);}为了控制EDIT最大行数,添加函数如下:void CLimitRowEdit::SetMaxRowCount(int nMaxRow){ nRowCount=nMaxRow; m_ArrayString.SetSize(0, nRowCount);}然后生成一对话框。添加两个EDIT ID_EDIT1:MULTI属性 ID_EDIT2:在里面输入你添加的文本命令按钮:void CXXDlg::OnAdd() { CString strText; GetDlgItemText(IDC_EDIT2,strText); m_MultiEdit.AppendString(strText); } 别忘了在OnInitDialog中将ID_EDIT1子类化。在stdafx.h中在所有*.h下面加一句:#include <afxtempl.h> //CArray需要试下吧! 对话框的标题无法正确显示韩文 如何知道一段字符是属于哪个控件的? Telnet怎么处理一个命令在两个数据包里的情况? 我在单文档的VIEW里创建了一个属性表,现在想处理这个属性表的页面切换消息! COLOR_3DFACE是窗口背景一个样式,为何msdn中查不到? 为什么我获取不到RecordCount? 这个图片要用什么算法过滤? vc++怎么能够只获取有网络连接的进程啊 很简单的c问题 请问有没有谁在不安装realplayer的情况下用vc调用real控件 如何使菜单项选中 MFC/SDI/ODBC/VC看了两天了有一些问题:怎么创建表?
首先从CEDIT派生CMYEDIT。
你应该添加几个成员变量:
private :
int nRowIndex;
int nRowCount;
CArray<CString,CString> m_ArrayString;
并初始化成员变量。
CMYEDIT::CMYEDIT()
{
nRowIndex=0;
nRowCount=10;
m_ArrayString.SetSize(0,RowCount);
}
添加一个成员函数[EDIT文本的更新]如下:
void CMYEDIT::AppendString(CString str)
{
CString sText=str+"\r\n"; //给文本加上换行字符
bool bFull=false; //是否已到文本允许的最大行数
int nLoop=0; m_ArrayString.Add(sText);
if(nRowIndex<nRowCount) //未够指定行数
{
nRowIndex+=1;
}
else
{
bFull=true;
for(int i=0;i<m_ArrayString.GetSize()-1;i++)
{
m_ArrayString.SetAt(i,m_ArrayString.GetAt(i+1));
}
m_ArrayString.RemoveAt(m_ArrayString.GetSize()-1);
} //清空文本内容
sText="";
if(bFull)
nLoop=m_ArrayString.GetSize();
else
nLoop=nRowIndex;
for(int j=0;j<nLoop;j++)
{
sText+=m_ArrayString.GetAt(j);
}
SetWindowText(sText);
}为了控制EDIT最大行数,添加函数如下:
void CLimitRowEdit::SetMaxRowCount(int nMaxRow)
{
nRowCount=nMaxRow;
m_ArrayString.SetSize(0, nRowCount);
}然后生成一对话框。添加两个EDIT
ID_EDIT1:MULTI属性
ID_EDIT2:在里面输入你添加的文本
命令按钮:
void CXXDlg::OnAdd()
{
CString strText;
GetDlgItemText(IDC_EDIT2,strText);
m_MultiEdit.AppendString(strText);
}
别忘了在OnInitDialog中将ID_EDIT1子类化。
在stdafx.h中在所有*.h下面加一句:
#include <afxtempl.h> //CArray需要
试下吧!