每行显示字数控制

hxdanya 2009-03-09 02:50:54
我这是一个聊天程序,我是想让显示消息的那个edit框内,能够实现就是当每行字数为50个时自动换行,如何在我这个函数的基础上实现?
void TalkDlg::OnBtnSend()
{
// TODO: Add your control notification handler code here
CString strSend;
GetDlgItemText(IDC_EDIT_SEND,strSend);
int len=strSend.GetLength();
WSABUF wsabuf;
wsabuf.buf=strSend.GetBuffer(len);
wsabuf.len=len+1;
/* if(SOCKET_ERROR==WSASendTo(m_socket,&wsabuf,1,&dwSend,0,
(SOCKADDR*)&addrTo,sizeof(SOCKADDR),NULL,NULL))
{
MessageBox("·¢ËÍÊý¾Ýʧ°Ü!");
return;
}
*/
CTime timeNow=CTime::GetCurrentTime();
CString strTime=timeNow.Format("%H:%M");

CString strTemp,str;
GetDlgItemText(IDC_EDIT_RECV,strTemp);
str.Format("%s \r\n %s ",strTime,strSend);//inet_ntoa(addrTo.sin_addr),
str+="\r\n";
str+=strTemp;
SetDlgItemText(IDC_EDIT_RECV,str);

SetDlgItemText(IDC_EDIT_SEND,"");
::SetFocus(::GetDlgItem(m_hWnd,IDC_EDIT_SEND));
PlaySound("msg.wav",NULL,SND_FILENAME | SND_ASYNC);
}
...全文
250 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜牛 2009-03-10
  • 打赏
  • 举报
回复
这个都不是很难的东西,没有技术含量,最好自己慢慢体会,我简单写一下,每隔50个字符插入一个回车换行,以你这个strSend为例:
	int nSect = strSend.GetLength() / 50; // 计算需要插入的数量
int nInsertPoint = 50; // 第一个插入点
for ( int i = 0; i < nSect; i++ )
{
strSend.Insert( nInsertPoint, _T("\r\n") ); // 插入回车换行符
nInsertPoint += 52; // 下一个插入点,注意要将回车换行符的长度计算在内
}

hxdanya 2009-03-09
  • 打赏
  • 举报
回复
程序是怎么样写的?我是刚学VC,很多不懂。
菜牛 2009-03-09
  • 打赏
  • 举报
回复
你就利用strSend每隔50个字符插入一个回车换行("\r\n")好了,为了不影响发送的数据,可以在发送后处理。

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧