如何得到数据窗口中列的字体宽度及一个字符串的宽度(cm单位)?

wander 2000-03-24 10:46:00
printwidth()只能用于printopen()之中,在数据窗口中的dw_1.object.cloumn.font.width的返回值就是无法的到
我的目的是为了在数据窗口中准确的得到一字符串的绝对宽度
...全文
175 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
929 2000-03-24
  • 打赏
  • 举报
回复
既然可用PRINTWIDTH算出字符串的宽度,我有一个不太好的方法:思路就是先应用PRINTDEFINFONT按照数据窗口中字段字体的信息将打印字体构造出来,并选为当前字体。然后将数据窗口中字段值做为字符串传给PRINTWIDTH,让它计算出字符串的长度。
在数据窗口的属性中可得到字体的FACENAME,HEIGHT,WEIGHT,FONTPITCH,FONTFAMILY,ITALIC,UNDERLINE。
用到的函数在PB中都是有的。
PrintOpen ( { jobname } )

PrintDefineFont ( printjobnumber, fontnumber, facename, height, weight, fontpitch, fontfamily, italic, underline )

PrintSetFont ( printjobnumber, fontnumber )

PrintWidth ( printjobnumber, string )

PrintCancel ( printjobnumber )

PrintClose ( printjobnumber )
guzhigang 2000-03-24
  • 打赏
  • 举报
回复
字体的宽度是根据高度和字体的其他信息而定,所以的不到。
我看只能用API Drawtext()的DT_CALCRECT,从DATAWINDOW中得到字体信息,
创建HDC和FONT,然后计算字符串宽度.
以上只是想法没有实践,仅供一笑

1,075

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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