暴难问题:关于richedit20的字体问题,非微软专家能解决的话,送1000分

chenzhou35 2002-07-31 04:02:00
在richedit20下,设置字体为某中文字体(比如楷体),输入汉字确实是楷体,但是一旦输入英文字符(在任何位置),这些英文字符字体立即变成了Arial字体(而且有意思的是,如果再输入汉字,汉字仍然是楷体的)。类似的情况也出现在fixedsys字体。

大家帮手啊,1000分等着你,决不失言。
...全文
6453 23 打赏 收藏 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiedewei 2010-06-01
  • 打赏
  • 举报
回复
关掉 dual-font:

GetRichEditCtrl().SendMessage(EM_SETLANGOPTIONS, 0, (GetRichEditCtrl().SendMessage(EM_GETLANGOPTIONS, 0, 0 ) & ~IMF_AUTOFONT ) );

http://blog.csdn.net/zys85/archive/2008/06/05/2513609.aspx
chenzhou35 2002-08-07
  • 打赏
  • 举报
回复
查msdn得到一下信息,可见这应该不是一个Bug,而是一个专门的设计,而且应该也不涉及到Unicode的问题。
那么有谁知道怎么可以屏蔽这个功能。

Dual-font: support The keyboard can automatically switch fonts when the active font is inappropriate for current keyboard, for example, Kanji characters in Times New Roman.
Smart font apply: Font change request does not apply Western fonts to Asian characters.
wufeng28 2002-08-01
  • 打赏
  • 举报
回复
不可能吧,我的挺好的啊,??
YP2002CN 2002-08-01
  • 打赏
  • 举报
回复
转换宽字符用
首先导入最新的richedit20.dll.. 然后修改*.rc上的richedit为richedit20W
YP2002CN 2002-08-01
  • 打赏
  • 举报
回复
由于richedit需要支持多语言格式所以他会自动切换多语言格式的代码页面.
我想你是否可以自己继承一个richedit..然后做自己的处理.
chenzhou35 2002-08-01
  • 打赏
  • 举报
回复
help!!!!!!!!!!!!!!
chenzhou35 2002-07-31
  • 打赏
  • 举报
回复
简单的更换了一下,一样,没有任何改变。
111222 2002-07-31
  • 打赏
  • 举报
回复
把你的richedit也换成宽字符的就成了
111222 2002-07-31
  • 打赏
  • 举报
回复
msn用的richedit是RichEdit20W
icq用的是RichEdit20A

就这么点儿差别!!!!!!!
sunbo 2002-07-31
  • 打赏
  • 举报
回复
我曾经有一个程序在NT4.0很好,在Win2000里 Professional有问题,也是字体问题,但与rechedit2.0无关,奇怪的是改为“宋体”后,两边都没问题。
chenzhou35 2002-07-31
  • 打赏
  • 举报
回复
而且,很显然的是,msn messenger就绕过去了。但是不知道它是m$自己打了补丁还是怎么弄的。

期待高手!!!!
chenzhou35 2002-07-31
  • 打赏
  • 举报
回复
和系统没有关系,据说这是rechedit2.0的一个bug,但是不知道有没有高手能有办法绕过去。
zijingzelan168 2002-07-31
  • 打赏
  • 举报
回复
换个系统
sunbo 2002-07-31
  • 打赏
  • 举报
回复
换一个操作系统试试,看看有没有问题。
chenzhou35 2002-07-31
  • 打赏
  • 举报
回复
我需要的效果,是如果我设置了楷体,那么无论我输入中文还是英文(无论半角还是全角)都要显示为楷体。

而且我说的是richedit2.0,不是edit,也不是richedit1.0,好像在richedit1.0下都是正确的,但是richedit2.0就不行了。
chenzhou35 2002-07-31
  • 打赏
  • 举报
回复
用全角当然可以,全角的根本就是汉字。我说的英文字符指的半角的英文字符,而且,我们也不能强迫用户使用全角的英文吧,太难看了。:)
shu 2002-07-31
  • 打赏
  • 举报
回复
用CEdit简单试了一下:m_myedit.setfont(m_font); 没有你说的问题。
punpuny 2002-07-31
  • 打赏
  • 举报
回复
我试了一下,没问题啊。在英文输入下,使用Times New Roman,输入英文字很正常;然后切换到中文,这时肯定有默认的中文字体,比如我改成“黑体”,输入中文也很正常。
如果再切换到英文,就又是Times New Roman,切换到中文就是黑体,一切正常。
chenzhou35 2002-07-31
  • 打赏
  • 举报
回复
当然有必要保持。你试试msn messenger,它就保持了,而且也用了richedit20,但是icq就无法保持,它用的也是richedit20。

况且,如果不保持的话,它怎么知道我的英文字符想用什么字体,总不能臆测我想用Arial吧。

再说,如果英文字符不支持这些字体那还说的过去,问题是它又支持,而且我可以使用SetSelectionCharFormat()直接吧这些英文字符设置成“楷体”的(显示也正确:楷体的英文字符),但是我即使在这些楷体的英文字符之间插入英文字符它也会变成Arial的,这总不对了吧,按习惯,它应该继承前一个字符(如果汉字不行,英文不可能也不行吧)的字体啊。
classy 2002-07-31
  • 打赏
  • 举报
回复
用全角吗!
加载更多回复(3)
代码下载地址: https://pan.quark.cn/s/a4b39357ea24 《MCGS调试助手-V2.3:深入解析与应用》 MCGS(Made in China for Graphic System)作为在工业自动化领域内得到广泛应用的组态软件,凭借其卓越的图形化编程技术以及全面的设备驱动兼容性,让使用者无需深入探究底层编程语言,即可迅速构建监控系统。MCGS调试助手V2.3是这一系列软件的更新迭代版本,致力于为使用者创造一个更加高效且便利的调试氛围。该版本正式推出时间为2022年4月13日,内含两个核心执行单元:MCGS调试助手_V2.3.apk与MCGS调试助手_V2.3.exe。前者适配于Android平台,后者则面向Windows系统,这反映出MCGS调试助手不仅聚焦于台式机平台,同时亦充分顾及了移动设备的使用情境,从而拓宽了其应用范畴。 MCGS调试助手的关键功能囊括: 1. **即时监控**:借助可视化界面,使用者能够即时掌握设备运行状况,涵盖数据流转、警报通报等资讯,显著增强了监控效能。 2. **仿真检测**:在正式实施之前,调试助手提供仿真平台,使用者可预设多样化工况,检测系统的响应机制和处理效能,确保程序的稳固性与精准度。 3. **问题排查**:内嵌的问题排查工具能够协助使用者迅速识别并处理系统中出现的故障,缩减停机时长,提升生产效能。 4. **设备互联**:MCGS兼容多种工业通讯协议,例如MODBUS、OPC等,能与各类可编程逻辑控制器、感应器、执行器等硬件设备实现无隙对接,达成数据互通。 5. **编程脚本**:尽管MCGS以图形化操作为主,但也支援编程脚本的运用,针对复杂的逻辑管控,使用者可通过编写脚本来达成目标。 6...

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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