Я пытаюсь написать код в Motif, чтобы изменить диалоговое окно с предупреждением, чтобы изменить его размер, если поле недостаточно широкое. Ширина и высота всегда устанавливаются вызывающими классами, и они не всегда достаточно широкие для отображаемого сообщения, а конец строки обрезается. Вместо того, чтобы фиксировать везде, чтобы использовать автоматическое изменение размера (т.е. ширина равна 0 или не задана вообще), они хотят выяснить, какова ширина в пикселях для символа в диалоговом окне. Затем они могут умножить самую длинную линию на ширину X пикселей, чтобы получить длину строки в пикселях. Затем мы увидим, нужно ли сбросить объявленную ширину диалогового окна, чтобы остановить усечение. Изменяются только слишком короткие диалоги (слишком широкие диалоги изменять нельзя).
Однако; Я не могу найти ни одного примера, как получить ширину символа в пикселях где угодно. Я помню, как go годы я был в проекте, где они создали какой-то виджет, вставили в него символ, а затем сделали XtGetValues, чтобы получить ширину и высоту, так что я думаю, что это можно сделать. Так кто-нибудь знает, как это сделать?