> No.1425,1426のアドバイスありがとうございます. 全然通じていないような・・・ Displayを複数オープンする必要はありません。 100のXサーバと接続するクライアントには応用できるので、一応書いてみました。 XtAppContextは内部で複数のディスプレイ接続に対応していますね。 しかし、あくまで、複数のXサーバと接続するクライアントの為の仕組みであって、ひとつのXサーバ相手に、複数のディスプレイ接続は無意味です。 #include <X11/Intrinsic.h> #include <X11/StringDefs.h> #include <X11/Shell.h> int main(int argc, char **argv) { XtAppContext ac; Display *dpy[100];/* ridiculous example */ Widget w[100]; Arg arg[2]; int i; char title[64]; /* Xt initialization */ XtToolkitInitialize(); ac = XtCreateApplicationContext(); XtSetLanguageProc(NULL, NULL, NULL); XtSetArg(arg[0], XtNwidth, 100); XtSetArg(arg[1], XtNheight, 100); for (i = 0; i < 100; i++) { /* ridiculous example */ dpy[i] = XtOpenDisplay(ac, NULL, NULL, "TestApp", NULL, 0, &argc, argv); sprintf(title, "%d", i); w[i] = XtAppCreateShell(title, "TestApp", applicationShellWidgetClass, dpy[i], arg, 2); XtRealizeWidget(w[i]); } XtAppMainLoop(ac); } |