100分的简单问题,关于EDIT内容的检查! 我想对编辑控件中的内容进行检查,要求只能输入字符和空格,但是第一个字符不能是空格. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 for i=1 to len(str) t=mid(str,i,1) j=asc(t) if j满足条件 then resume program else msgbox "输入字符串不符合条件" endifnext 利用EDIT控件的EN-CHANGE消息映射,在消息映射函数中滤处数字或空格 对不起,可能是我没说清楚,我是要在edit控件的OnChar函数中做判断的.我现在的问题是如何判断第一个字符是空格.如果第一个字符是空格,这个空格是要被删除,不会出现在edit中的.单纯只允许输入字符的edit控件我已经有现成的,现在的问题就是第一个字符是空格的问题了.因为不知道如何处理删除键,copy和paste的情况,我的思路有些乱,所以希望大家能给出具体代码. void CMyEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) { // TODO: Add your message handler code here and/or call default CEdit::OnChar(nChar, nRepCnt, nFlags); CString szText; GetWindowText(szText); if(szText.GetLength() > 0 && szText.GetAt(0) == ' ') { szText.TrimLeft(' '); SetWindowText(szText); }} CString str;GetDlgItem(IDC_***)->GetWindowText(str);int flag = str.Find(" ");//去掉前面所有的空格while (flag == 1){ str = str.Right(str.GetLength() - flag - 1); flag = str.Find(" ");}代码未经测试,只是思路!Good Luck! 我建议在输入完后进行判断,如果不符合就告诉用户这样的输入不合法,一边输入一边判断比较难办,还可以利用EN-CHANGE消息映射进行判断, 重载cedit类,在onchar中判断void CMyEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) { CEdit::OnChar(nChar, nRepCnt, nFlags); // TODO: Add your message handler code here and/or call default CString strEdit; GetWindowText(strEdit); if( (strEdit.GetLength()>0) && (strEdit.GetAt(0)==' ') ) { strEdit.TrimLeft(); SetWindowText(strEdit); }} LongLongAgoImBoy(ThereIsAMe),thank you!That is waht I wanted! 奇怪?那什么我已经结贴,分数也没了,但LongLongAgoImBoy(ThereIsAMe)得分是0? 我创建了一个表格,但不知数据怎样保存到文件 高手请进:用VC++ API模式编写一个基于IP/TCP协议的服务器端与客户端通信的程序 VC使用C API开发MySQL数据库问题 一个简单的问题:怎样让SDI程序在关闭时不出现保存对话框? 想问一下,bt下载的种子文件是不是所有的bt下载软件通用? 如何判断程序是否在运行 Wav文件头格式中的一个详细问题 想问一个问题模糊图像恢复是否可达到如下效果? 切换工具栏问题,100敬上。 一个关于对话框的问题 怎么在接口方法中传递其它接口参数? 请问MFC中,this指针的用法
t=mid(str,i,1)
j=asc(t)
if j满足条件 then
resume program
else
msgbox "输入字符串不符合条件"
endif
next
我现在的问题是如何判断第一个字符是空格.如果第一个字符是空格,
这个空格是要被删除,不会出现在edit中的.
单纯只允许输入字符的edit控件我已经有现成的,现在的问题就是第一个
字符是空格的问题了.
因为不知道如何处理删除键,copy和paste的情况,我的思路有些乱,所以希望大家能给出具体代码.
{
// TODO: Add your message handler code here and/or call default
CEdit::OnChar(nChar, nRepCnt, nFlags);
CString szText;
GetWindowText(szText);
if(szText.GetLength() > 0 && szText.GetAt(0) == ' ')
{
szText.TrimLeft(' ');
SetWindowText(szText);
}
}
GetDlgItem(IDC_***)->GetWindowText(str);
int flag = str.Find(" ");
//去掉前面所有的空格
while (flag == 1)
{
str = str.Right(str.GetLength() - flag - 1);
flag = str.Find(" ");
}代码未经测试,只是思路!
Good Luck!
{
CEdit::OnChar(nChar, nRepCnt, nFlags); // TODO: Add your message handler code here and/or call default
CString strEdit;
GetWindowText(strEdit);
if( (strEdit.GetLength()>0) && (strEdit.GetAt(0)==' ') )
{
strEdit.TrimLeft();
SetWindowText(strEdit);
}}
那什么我已经结贴,分数也没了,但LongLongAgoImBoy(ThereIsAMe)得分是0?