mfc CRichEdit findtext() 查找 中文字符串,在某些电脑上会有问题,始终返回-1
CRichEditCtrl&ctrl=GetRichEditCtrl();::LockWindowUpdate(ctrl);FINDTEXTEXft;//查找结构ft.c...
CRichEditCtrl& ctrl = GetRichEditCtrl();
::LockWindowUpdate(ctrl);
FINDTEXTEX ft; //查找结构
ft.chrg.cpMin = 0;
ft.chrg.cpMax = -1;
ft.lpstrText = "中文";
long r = ctrl.FindTextA(FR_DOWN, &ft);
在某些电脑上可以正常找中文字符串,在某些电脑上找中文字符串会出问题,
r始终等于-1
我的编译环境是vs2010,
语言是C++,用的mfc类库
某些xp电脑上会查找不到,如何解决? 展开
::LockWindowUpdate(ctrl);
FINDTEXTEX ft; //查找结构
ft.chrg.cpMin = 0;
ft.chrg.cpMax = -1;
ft.lpstrText = "中文";
long r = ctrl.FindTextA(FR_DOWN, &ft);
在某些电脑上可以正常找中文字符串,在某些电脑上找中文字符串会出问题,
r始终等于-1
我的编译环境是vs2010,
语言是C++,用的mfc类库
某些xp电脑上会查找不到,如何解决? 展开
1个回答
展开全部
ctrl.setsel(0,-1);
追问
这个函数的功能不是选中所有么?
追答
FR_DOWN 如果指定了这个标志值,搜索操作从当前选定的 end 位置开始,直到控件中正文的 end 位置结束(向下搜索)。这个标志仅影响 RichEdit 2.0 和以后版本: 这个是 RichEdit 1.0 的缺省行为。RichEdit 2.0 或以后版本的缺省行为是在当前选定正文内的从结尾搜索到开始位置(向前搜索)。
概括来说就是,如果你使用 RichEdit 1.0, 无论你做什么都没法影响搜索的方向:它总使用向后搜索。但是如果你使用 RichEdit 2.0 而且你想使用向后搜索的话,你必须指定这个标志值,否则使用的是向前搜索了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询