我正在使用libXm4.0.3。我想从窗口小部件中获取窗口小部件的显示编号。
直接转到xlib会导致段错误。 Xt似乎也是段错误。
我开始使用一些XmGetXmDisplay或XmGetXmScreen函数,但我看到“无法找到每个显示信息”,我不知道如何克服这个问题。
如何从libXm小部件获取当前显示编号?
这是我目前的代码:
int get_disp_num_from_widget(Widget w) {
Screen* xs = w->core.screen; //Xlib screen
if (xs) {
Display* xd = w->core.screen->display; //Xlib display
if (xd) {
XmDisplay d = XmGetXmDisplay(xd); // causes "Couldn't find per display information"
if (d) {
char* string = d->display.bindingsString;
if (string) {
printf("Display binding string: %s", string);
}
}
}
}
return -1;
}
您可以使用XtDisplay(Widget *)函数获取任何小部件的Display *。