1
我有一個窗口,我想能夠控制它出現的位置。然而,在調用「XMapWindow」之前調用「XMoveWindow」似乎沒有效果。XMoveWindow不工作之前XMapWindow
docs不說什麼。幫幫我?
我有一個窗口,我想能夠控制它出現的位置。然而,在調用「XMapWindow」之前調用「XMoveWindow」似乎沒有效果。XMoveWindow不工作之前XMapWindow
docs不說什麼。幫幫我?
XtCreateWindow有x和y座標,因此您可以在創建時指定位置。請注意,X服務器在第一次映射之前不必知道窗口,因此移動未映射的窗口可能沒有任何作用。
但是XtCreateWindow只適用於主窗口的子窗口;如果您想要放置頂層窗口(無論是主應用程序還是彈出式對話框),則必須與窗口管理器協商放置窗口。下面的代碼片斷執行此使用XT LIB對於主窗口:
Arg args[] = {
{ XtNx, (dis_width - WIN_WIDTH)/2},
{ XtNy, (dis_height - WIN_HEIGHT)/2},
{ XtNwidth, WIN_WIDTH},
{ XtNheight, WIN_HEIGHT},
{ XtNborderWidth, 10},
{ "minWidth", WIN_WIDTH},
{ "minHeight", WIN_HEIGHT},
{ "maxWidth", WIN_WIDTH},
{ "maxHeight", WIN_HEIGHT},
{ "mwmDecorations", 0xA}, // border + title; see MWM_DECOR_ constants
{ "mappedWhenManaged", False},
};
shell = XtAppCreateShell (_ ("Welcome"), NULL, applicationShellWidgetClass, Dis, args, XtNumber (args));
它創建爲中心的屏幕上的窗口。
對於彈出窗口,請參閱XtCreatePopupShell,它使用帶參數的相似數組。