だから私は次のコードを持っています.追加した/追加したかどうかはわかりませんが、とにかくconextのためにそこにあります.
Window root = XCreateWindow(proc->display,
RootWindow(proc->display, screen),
0, 0, width + 500, height + 500, 0,
CopyFromParent, InputOutput,
CopyFromParent, CWEventMask, &attr);
XSetWindowBackground(proc->display, root, WhitePixel(proc->display, screen));
XFlush(proc->display);
XMapWindow(proc->display, root);
Window avaliableDevices = XCreateSimpleWindow(proc->display, root, 10, 50,
220, 650, 5, BlackPixel(proc->display, screen),
WhitePixel(proc->display, screen));
XFlush(proc->display);
XMapWindow(proc->display, avaliableDevices);
sleep(1);
XDrawString(proc->display, root, DefaultGC(proc->display, DefaultScreen(proc->display))
, 20, 20, "hello", strlen("hello"));
Window networkedDevices = XCreateSimpleWindow(proc->display, root, /* display, parent */
900, 50, /* x, y: the window manager will place the window elsewhere */
220, 650, /* width, height */
5, BlackPixel(proc->display, screen), /* border width & colour, unless you have a window manager */
WhitePixel(proc->display, screen)); /* background colour */
XDrawString(proc->display, root, DefaultGC(proc->display, DefaultScreen(proc->display))
, 920, 40, "NETWORKED DEVICES", strlen("NETWORKED DEVICES"));
私が抱えている問題は、sleep(1) がないと、文字列が画面に描画されず、なぜアイデアが少し混乱しているのかということです。
初めて呼び出すときはスリープが必要ですが、2回目は問題ありません:/