libXm从小部件中获取显示编号

问题描述 投票:0回答:1

我正在使用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;
}
xlib motif
1个回答
1
投票

您可以使用XtDisplay(Widget *)函数获取任何小部件的Display *。

© www.soinside.com 2019 - 2024. All rights reserved.