社区
界面
帖子详情
如何使得CEdit内容不可编辑?
sukermq
2004-03-25 09:29:46
请问:
如何使得在CEdit中输入内容超过一定字符数时,使得CEdit不可编辑?
经过测试:LimitText(int)以及SetReadOnly(false)不符合我的要求,
因为LimitText(int)会对CEdit里面的字符数进行计算后再来限制输入,但是我对字符串数的计算与系统的默认计算不同;而SetReadOnly(false)会使得CEdit变灰,所以请问有什么好方法没?
...全文
247
13
打赏
收藏
如何使得CEdit内容不可编辑?
请问: 如何使得在CEdit中输入内容超过一定字符数时,使得CEdit不可编辑? 经过测试:LimitText(int)以及SetReadOnly(false)不符合我的要求, 因为LimitText(int)会对CEdit里面的字符数进行计算后再来限制输入,但是我对字符串数的计算与系统的默认计算不同;而SetReadOnly(false)会使得CEdit变灰,所以请问有什么好方法没?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shadowWind
2004-07-13
打赏
举报
回复
mark
A_Qiao
2004-03-25
打赏
举报
回复
你的要求是否跟这位的一样?
http://expert.csdn.net/Expert/topic/2848/2848844.xml?temp=.2150385
sukermq
2004-03-25
打赏
举报
回复
倒,没人理哦!自己顶!
sukermq
2004-03-25
打赏
举报
回复
我对中文字符和英文字符都算作了2个字符,所以用LimitText(长度)是不行的。 fzd999(花差花差)能不能帮找个列子呀,或者具体点,谢谢了...
red-fly
2004-03-25
打赏
举报
回复
计算方法有什么不同?
不是固定长度吗?
那你就每计算一次看够不够,如果够长了,就调用LimitText(现在的长度)
fzd999
2004-03-25
打赏
举报
回复
子类化,重载WM_CHAR消息处理,内置一个计数器,响应一次加一,到了限定字数就……,注意要对back space进行特殊处理。
sukermq
2004-03-25
打赏
举报
回复
倒,CSDN这个破系统,我想结贴给分都不让,说什么程序错误,我晕哦:
Microsoft OLE DB Provider for SQL Server 错误 '80040e14'
Invalid column name 'use_Password'.
/expert/GiveTip.asp,行62
叫我怎么办??????????????????
sukermq
2004-03-25
打赏
举报
回复
是传值的时候有点问题,这样直接写是没问题的,因为我写了个函数把它封起来了,所以传递值的时候导致有些错误!
结贴,谢谢各位!
ymbymb
2004-03-25
打赏
举报
回复
你照我的方法应该可以的啊
if(count > 120)
{
count = 120;
m_Edit.SetWindowText(str.Left(pos));
}
这几句话就是为了将多余的字符去掉
sukermq
2004-03-25
打赏
举报
回复
大部分问题已经解决了,目前还有一个问题:
当我复制粘贴时,假设最大值是:120,目前我拷贝了80个数,然后我再粘贴80个数字,按照我的想法是:它应该只显示前120个数字,但是还是出现了多于的40个数,不知道该如何解决!
ymbymb
2004-03-25
打赏
举报
回复
你只要在OnChangeEdit中动态改变EDIT的最大字符数就可以了,下面的例子假设你希望最大10个字符,即10个汉字或10个字母.
void CTestDlg::OnChangeEdit1()
{
CString str;
m_Edit.GetWindowText(str);
int count = 0;
int pos = 0;
for(int i = 0; i < str.GetLength(); i++)
{
if((BYTE)str[i] < 0x80) count++;
else
{
count ++;
i++;
}
if(count == 10) pos = i;
}
if(count > 10)
{
count = 10;
m_Edit.SetWindowText(str.Left(pos));
}
m_Edit.SetLimitText(str.GetLength() + (10 - count)*2 );
}
不知道你加了多少分啊? 呵呵,越多越好!
sukermq
2004-03-25
打赏
举报
回复
帖子加分了,急用哦,请人指点......
最好详细点哦,谢谢了!
sukermq
2004-03-25
打赏
举报
回复
不一样哦,我需要这样算:
如果中英文都存在一个字符串里面,那么中文做2个字符算,英文也做2个字符算,这个我已经实现了,但是使用LimitText(int nMax)时,如果是手写输入,我现在可以用str.GetLength()获取实际的长度然后LimitText(nTrueLen);但是现在又有个问题是:当我复制粘贴时,如果剪贴板上的字符超过可以输入的范围时,会出现异常错误。该怎么办?
VC浮点数
编辑
框类,实现浮点数输入并屏蔽非法字符
个人编写的
编辑
框类,派生自C
Edit
类, 可实现控制文本框只接受浮点数输入,而不接受非法字符 不当之处,恳请指正~
格式化数字
编辑
框
MFC默认的数字
编辑
框无法输入小数点、±号,使用粘贴时可以输入非数字字符。为解决这些BUG,自己写了一个从C
Edit
派生的格式化数字
编辑
框,可设置类型有NORMALDATA-字符串数据;UNSIGNEDNUM-无符号整数;SIGNEDNUM-有符号整数;UNSIGNEDDOT-无符号小数;SIGNEDDOT-有符号小数;FORMATNUM-格式化数字。资源保护两个文件WJ
Edit
.h与WJ
Edit
.cpp。
C++实战之 windows MFC 工程应用开发与框架原理完全剖析
本课程是Windows程序设计系列课程三部曲之二:Windows MFC框架原理与工程应用开发。本课程重点讲解在windows平台开发使用MFC框架进行应用程序开发的核心手段.
一个智能化的日期时间类CDateTime
Edit
一个智能化的日期时间类CDateTime
Edit
这个类虽然是从C
Edit
类继承,但做了日期时间的格式化规范,用户输入感觉到很方便,可以用左右键来移动选区,用上下键或滚轮来改变数字,也可直接输入。不会得到错误格式的日期时间格式。 用GetDateTime(COleDateTime& dateSrc)来获取
编辑
框中的
内容
用SetDateTime(COleDateTime& dateSrc)来设置
编辑
框中的
内容
用ClearDateTime(COleDateTime& dateSrc)来清除
编辑
框中的
内容
可以EnableWindow(BOOL bEnable)来允许或不允许用户操作。 在界面上放一个C
Edit
控件,直接关联上这个类就可以用。
DOS下使用的编程工具集1
DOS
编辑
工具.rar 里面有
edit
.exe
edit
.com c
edit
.exe pascal
编辑
工具,Q-BASIC编程工具,C/C++编程工具。很古老了,但很经典很实用,我为了学编程特意去买了个PPC多普达D900,安装了DOS系统,才能用这些工具,收集这些工具我用了很多时间精力,所以想得点分,不然别人的工具我都下不了。。。。我是多么想免费共享出来呀,可没积分不行呀!
界面
15,979
社区成员
115,897
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章