如何将主应用程序窗口在计算机屏幕中间的 MOTIF 中居中



如何将 MOTIF 小部件的主应用程序窗口居中在计算机屏幕的中心? 例如这里的表单小部件。

代码已准备就绪并正常工作,但窗口显示在屏幕的左上方。

#include <Xm/Form.h>
#include <Xm/Label.h>
#include <Xm/PushB.h>

void main ( int argc, char ** argv )
{
    Widget              shell, form, label, button;
    XtAppContext app;
    int  i;

    shell = XtAppInitialize ( &app, "Formtest", NULL, 0,
                              &argc, argv, NULL, NULL, 0 );

    form = XtCreateManagedWidget ( "form", xmFormWidgetClass,
                                    shell, NULL, 0 );
    XtVaSetValues ( form,
                  XmNwidth, 500, 
                  XmNheight, 300, 
                  NULL );               

    label = XtVaCreateManagedWidget ( "label", xmLabelWidgetClass,
                                    form, NULL, 0 );
    button = XtVaCreateManagedWidget ( "button", xmPushButtonWidgetClass,
                                    form, 
                                    XmNbottomAttachment,       XmATTACH_FORM,
                                     0 );
    XtVaSetValues ( button,
                  XmNwidth, 100, 
                  XmNheight, 50, 
                  NULL );

    XtRealizeWidget ( shell );
    XtAppMainLoop ( app );
}`````
This MOTIF Windows is working correct already.
The only thing i want to do is to position it in the middle of the computerscreen.
It has something to do with the command  Xtscreen.

获取屏幕高度和宽度并进行调整。请尝试以下操作:

#include <Xm/Form.h>
#include <Xm/Label.h>
#include <Xm/PushB.h>

int main ( int argc, char ** argv )
{
    Widget              shell, form, label, button;
    XtAppContext app;
    int  i;

    shell = XtAppInitialize ( &app, "Formtest", NULL, 0,
                          &argc, argv, NULL, NULL, 0 );
    Screen * s = XtScreen(shell);
    int dw = WidthOfScreen(s);
    int dh = HeightOfScreen( s );
    Dimension px = (dw-500)/2;
    Dimension py = (dh-300)/2;
    XtVaSetValues ( shell,
              XmNwidth, 500,
              XmNheight, 300,
              XmNx, px,
              XmNy, py,
              NULL );

    form = XtCreateManagedWidget ( "form", xmFormWidgetClass,
                                shell, NULL, 0 );
    label = XtVaCreateManagedWidget ( "label", xmLabelWidgetClass,
                                form, NULL, 0 );
    button = XtVaCreateManagedWidget ( "button", xmPushButtonWidgetClass,
                                form,
                                XmNbottomAttachment,       XmATTACH_FORM,
                                 0 );
    XtVaSetValues ( button,
              XmNwidth, 100,
              XmNheight, 50,
              NULL );

    XtRealizeWidget ( shell );
    XtAppMainLoop ( app );
}

相关内容

  • 没有找到相关文章

最新更新