18,356
社区成员
发帖
与我相关
我的任务
分享
OnInputText()
{
.........
if(in.GetAt(in.GetLength()-1)=='\n') // 判断回车在这里,把这里的拷出去改一下就行了
}
你可以把OnInputText()改得更简单些
void CExample1Dlg::OnInputText()
{
if(!m_bInit)
{
AfxMessageBox("对话没有正确设置!");
return;
}
CString in;
GetDlgItem(IDC_INPUTTEXT)->GetWindowText(in);
//输入框中只有回车键被按下,所以不发送回车键字符
if(in.GetLength()<1)
{
return;
}
if(in.GetAt(in.GetLength()-1)=='\n')
{
OnSend();
}
}
void CExample1Dlg::OnSend()
{
TCHAR th[500];
GetDlgItem(IDC_INPUTTEXT)->GetWindowText(th,500);
CString in(th);
in.TrimRight(" ");
//将输入框中的字符清空,表示字符已经被发送
GetDlgItem(IDC_INPUTTEXT)->SetWindowText("");
if(in.GetLength()>2)
{
m_sShowText+=in;
//将输入的话显示到显示窗口中
GetDlgItem(IDC_SHOWTEXT)->SetWindowText(m_sShowText);
CEdit * output=(CEdit *)GetDlgItem(IDC_SHOWTEXT);
//随时跟踪滚动条的位置
output->LineScroll(output->GetLineCount());
//服务器端
if(!m_bClient)
{
int length=m_connectionList.GetCount();
SOCKET socket;
for(int i=0;i<length;i++)
{
socket=m_connectionList.GetAt(m_connectionList.FindIndex(i));
send(socket,in.GetBuffer(0),in.GetLength(),0);
}
}
//客户端
else
{
m_client.SendString(in);
}
}
}