C++ Motif如何计算或检索字体像素大小?

C++ Motif如何计算或检索字体像素大小?,c++,motif,xt,C++,Motif,Xt,我试图在Motif中编写代码来更改对话框警告框,以便在框不够宽时调整其大小。宽度和高度总是由调用类设置的,其宽度不总是足够显示消息,行尾被截断。他们希望在对话框中找出字符的像素宽度大小,而不是使用自动调整大小(即宽度为0或根本不设置)。然后,它们可以将最长的线条乘以X像素宽度,得到以像素为单位的线条长度。然后,我们将查看是否需要重置对话框声明的宽度以停止截断。只会更改太短的对话框(不能更改太宽的对话框)。 然而;我找不到任何关于如何以像素为单位获得字符宽度的示例。我记得几年前,我在一个项目中,他

我试图在Motif中编写代码来更改对话框警告框,以便在框不够宽时调整其大小。宽度和高度总是由调用类设置的,其宽度不总是足够显示消息,行尾被截断。他们希望在对话框中找出字符的像素宽度大小,而不是使用自动调整大小(即宽度为0或根本不设置)。然后,它们可以将最长的线条乘以X像素宽度,得到以像素为单位的线条长度。然后,我们将查看是否需要重置对话框声明的宽度以停止截断。只会更改太短的对话框(不能更改太宽的对话框)。


然而;我找不到任何关于如何以像素为单位获得字符宽度的示例。我记得几年前,我在一个项目中,他们创建了某种类型的小部件,在其中插入了一个字符,然后做了一个XtGetValues来获得宽度和高度,所以我认为这是可以做到的。有人知道怎么做吗?

那是很久以前的事了,但如果内存可用,Xt对字体没有任何特定的支持,它依赖于普通的libx11。您需要调用
XQueryFont
XLoadQueryFont
来获取描述字体的
XFontStruct
,然后通过
peru char
数组查找各个字形的范围。

那是很久以前的事了,但是如果内存可用,Xt对字体没有任何特定的支持,它依赖于普通libx11。您需要调用
XQueryFont
XLoadQueryFont
来获取描述字体的
XFontStruct
,然后通过
perchar
数组查找各个字形的范围。

如果我没记错的话,文本呈现是X11的一部分,也称为libX11。出于好奇,我在谷歌上搜索了一下,结果发现它看起来有希望。(几十年前,我自己使用OSF/Motif…;-)如果我没记错的话,文本呈现是X11的一部分,也称为libX11。出于好奇,我在谷歌上搜索了一下,结果发现它看起来有希望。(几十年前,我自己使用OSF/Motif…;-)