MFC EDIT控件不能输入字符?

Djerly 2012-05-19 10:17:14
小弟是MFC入门级选手,所以请大牛指教

运行平台:VS2005

这样的:之前做一个TCP的服务器端程序,可以连接成功,现在就是要在上面加上一个EDIT和Button控件

点击Button之后,将EDIT中的内容发送带客户端

现在就是添加了EDIT控件之后,就是手动写入字符发送,,数字倒是可以发送

下面是添加的源码:

void CListenDlg::OnBnClickedBsend()
{
// TODO: 在此添加控件通知处理程序代码
char buff[100];
m_ctrlEditSend.GetWindowText(buff,99);
if (send(m_TcpClientSock,buff,100,0)==SOCKET_ERROR)
m_ctrlEditSend.SetWindowText("发送数据出错!");
else
m_ctrlEditSend.SetWindowText("");
}


上面的代码中:m_ctrlEditSend是给CEDIT添加的一个CTRL类型的变量

我之前猜想是我操作的问题

我就把重新放一个EDIT控件,,啥程序也不关联

然后直接编译、运行,但是还是不能输入字符(类似于“JIDOSHFKSLHF“),只能输入数字
...全文
1108 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Djerly 2012-05-20
  • 打赏
  • 举报
回复
属性设置,,我没动也不行呀,
应该是默认的肯定是可以输入的吧


[Quote=引用 3 楼 的回复:]
属性设置有问题吧... 如楼上的..
[/Quote]
Djerly 2012-05-20
  • 打赏
  • 举报
回复
NUMBER那一项却是没有打钩
没选中
[Quote=引用 2 楼 的回复:]
你的编辑框属性是不是勾上了number属性了?
[/Quote]
Djerly 2012-05-20
  • 打赏
  • 举报
回复
直接给buff赋值是可以发送的
具体代码是:
char buff[100]=“WWWW”;

请赐教
[Quote=引用 1 楼 的回复:]
你直接给buff赋字符串值看看能不能发送,EDIT获取得数据应该没问题
[/Quote]
Djerly 2012-05-20
  • 打赏
  • 举报
回复

感谢上面几位朋友对本问题的关注,现在我找到问题了,就是之前的工程代码中有这么一段代码
有了这段代码,在其中不能输入字符了。所以问题也就解决了。
再次谢谢大家的关注。
希望没有得到答案。还是感谢大家的回答,从大家的回答中,我也学到很多。
BOOL CListenDlg::PreTranslateMessage(MSG* pMsg)
{
//TODO: Add your specialized code here and/or call the base class
if(WM_CHAR==pMsg->message)
{
int nChar=(int)(pMsg->wParam);
if((nChar<48||nChar>57)&&(nChar!=8))
return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}
Djerly 2012-05-20
  • 打赏
  • 举报
回复
朋友,我也想单步调试,但是运行起来之后,,在编辑框内只能输入数字,或者可以粘贴字符,,就是不能手动输入的问题,控件的属性默认都不行,
请指教

[Quote=引用 7 楼 的回复:]
char buff[100];
memset(buff,0x0,100);//加这句,初始化数组为0
m_ctrlEditSend.GetWindowText(buff,99);
另外,你输入字符后单步执行到m_ctrlEditSend.GetWindowText(buff,99);这句,看看buff是什么值.输入字符时不要加上双引号,直接输入字符,比如想输入"ABCDEFG",你直接在……
[/Quote]
hdg3707 2012-05-20
  • 打赏
  • 举报
回复
还有,你的发送函数有些问题,这么改:
int Len;
CString Str;
m_ctrlEditSend.GetWindowText(Str);
Len=Str.GetLength();
buff=(LPCSTR)(LPCTSTR)Str;//好象是这么赋值
if (send(m_TcpClientSock,buff,Len,0)==SOCKET_ERROR)
hdg3707 2012-05-20
  • 打赏
  • 举报
回复
char buff[100];
memset(buff,0x0,100);//加这句,初始化数组为0
m_ctrlEditSend.GetWindowText(buff,99);
另外,你输入字符后单步执行到m_ctrlEditSend.GetWindowText(buff,99);这句,看看buff是什么值.输入字符时不要加上双引号,直接输入字符,比如想输入"ABCDEFG",你直接在编辑框里输入:ABCDEFG就行了.
就叫我海 2012-05-19
  • 打赏
  • 举报
回复
属性设置有问题吧... 如楼上的..
Eleven 2012-05-19
  • 打赏
  • 举报
回复
你的编辑框属性是不是勾上了number属性了?
hdg3707 2012-05-19
  • 打赏
  • 举报
回复
你直接给buff赋字符串值看看能不能发送,EDIT获取得数据应该没问题

18,363

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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