delphi – 如何绘制Unicode文本?
发布时间:2020-12-15 04:10:16 所属栏目:大数据 来源:网络整理
导读:如何在TCustomControl上绘制Unicode文本?没有画布还有其他选择吗? 解决方法 是的,你是对的.不过,我建议你升级到Delphi 2009或更高版本,其中VCL具有完全的Unicode支持,一切都更容易. 无论如何,你可以做到 procedure TMyControl.Paint;var S: WideString; r:
如何在TCustomControl上绘制Unicode文本?没有画布还有其他选择吗?
解决方法
是的,你是对的.不过,我建议你升级到Delphi 2009或更高版本,其中VCL具有完全的Unicode支持,一切都更容易.
无论如何,你可以做到 procedure TMyControl.Paint; var S: WideString; r: TRect; begin inherited; r := ClientRect; S := 'This is the integral sign: '#$222b; DrawTextW(Canvas.Handle,PWideChar(S),length(S),r,DT_SINGLELINE or DT_CENTER or DT_VCENTER or DT_END_ELLIPSIS); end; 在旧版本的Delphi中(我认为.代码在我的虚拟Windows 95机器中编译Delphi 7,但我看不到文本.这是因为我认为Windows 95太旧了.) 更新 如果你想支持非常旧的操作系统,比如Windows 95和Windows 98,你需要使用TextOutW而不是DrawTextW,因为后者没有实现(source).TextOut的功能不如DrawText,所以你需要手动计算位置例如,如果要将文本居中放置在矩形中. procedure TMyControl.Paint; var S: WideString; begin inherited; S := 'This is the integral sign: '#$222b; TextOutW(Canvas.Handle,length(S)); end; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |