我正试图在Motif中编写代码,以更改对话框警告框,如果框不够宽,则调整其大小。宽度和高度总是由调用类设置的,其宽度并不总是足够宽,无法显示消息,行的末尾被截断。他们不想到处固定以使用自动调整大小(即宽度为0或根本没有设置(,而是想弄清楚对话框中字符的像素宽度大小。然后,他们可以乘以最长的行X像素宽度,以获得以像素为单位的行长度。然后我们将查看对话框声明的宽度是否需要重置以停止截断。只有太短的对话框才会被更改(太宽的对话框不会被更改(
但是;我找不到任何关于如何在任何地方获得以像素为单位的字符宽度的例子。我记得几年前我在一个项目中,他们创建了某种类型的小部件,在其中插入了一个字符,然后做了一个XtGetValues来获得宽度和高度,所以我认为这是可以做到的。有人知道怎么做吗?
那是很久以前的事了,但如果有内存的话,Xt对字体没有任何特定的支持,它依赖于普通的libx11。您需要调用XQueryFont
或XLoadQueryFont
来获得描述您的字体的XFontStruct
,然后在per_char
数组中查找各个字形的范围。