CDC::DrawText( LPCTSTR lpszString, int nCount, LPRECT lpRect, UINT nFormat );
nFormat 指定为DT_CALCRECT (计算所需要的尺寸,此时不会绘制,只是计算)
传入的lpRect中定好宽度
详见MSDN中
用此函数计算每一段需要的高度,按此高度绘制
再计算总高度,求出滚动需要的信息。使用矢量字体时,字符是不等宽的。不能用乘法简单得知绘制宽度。
如果需要自己计算,需要用到GetTextExtent,但需要预先使用IsDBCSLeadByte等判断好是否半个汉字,再判断换行处。我有编写编辑器经验,需要的化,可以提供详细帮助。
nFormat 指定为DT_CALCRECT (计算所需要的尺寸,此时不会绘制,只是计算)
传入的lpRect中定好宽度
详见MSDN中
用此函数计算每一段需要的高度,按此高度绘制
再计算总高度,求出滚动需要的信息。使用矢量字体时,字符是不等宽的。不能用乘法简单得知绘制宽度。
如果需要自己计算,需要用到GetTextExtent,但需要预先使用IsDBCSLeadByte等判断好是否半个汉字,再判断换行处。我有编写编辑器经验,需要的化,可以提供详细帮助。
解决方案 »
- 如何将一个表示十六进制数的字符串转换为十进制数??
- GetDlgControl方法该怎么使用?(在线等待)
- 如何创建虚拟网卡,类似VMWare那样
- 完成端口中去主动连接别的主机,使用WSAConnect后该怎么才能让完成端口得到IO通知呢?
- 各位从众多的安装程序制作工具中,推荐一款,我需要做很多自定义安装动作,thx
- 如何写全局钩子截获启动的应用程序及系统的键盘事件,小弟必拱手献上100分已表谢意!!
- 怎样获取系统时间
- 我想CTreeCtrl控件中的每一个HTREEITEM对应一个object,可以使用CMapPtrToPtr么?
- 急!release编译出的exe文件在其他机器运行提示找不到成员函数
- 该死的此类错误怎么处理呀?
- 在vc中如何使用adsi+cdoexm来创建邮箱?
- VC++中如何访问i/o端口?
谢谢了:)))))
[email protected]
唐突了,见谅!
这个函数可以计算指定了显示宽度的字符串到底用了几个字符,这个函数主是用于做自动换行时的计算的。:-)
具体的方法可以看win32 Programer Reference 里的 Font and Text 一节。