Изменить цвет фона окна Xlib с помощью C++

Это Linux. Я создал окно и хочу изменить цвет фона на зеленый. Вот как выглядит мой код:

Window xwin = XCreateSimpleWindow(dis, 
                                  DefaultRootWindow(dis), 
                                  0, 0, 
                                  500, 300, 
                                  0,
                                  WhitePixel(dis, 0),
                                  WhitePixel(dis, 0));
GC gc = XCreateGC(dis, xwin, 0, NULL);
XColor color;
Colormap colormap;
char green[] = "#00FF00";

colormap = DefaultColormap(dis, 0);
XParseColor(dis, colormap, green, &color);
XAllocColor(dis, colormap, &color);

XSetBackground(dis, gc, color.pixel);

XMapWindow(dis, xwin);
XFlush(dis);

Окно, которое я вижу, белое. Можно ли изменить цвет фона окна в Linux, используя X11? Спасибо!

1 ответ

Решение

Если вы просто хотите зеленый фон, последний аргумент XCreateSimpleWindow - это цвет фона, так что...

  XColor color;
  Colormap colormap;
  char green[] = "#00FF00";

  colormap = DefaultColormap(dis, 0);
  XParseColor(dis, colormap, green, &color);
  XAllocColor(dis, colormap, &color);


  Window xwin = XCreateSimpleWindow(dis, 
                   DefaultRootWindow(dis), 
                   0, 0, 
                   500, 300, 
                   0,
                   WhitePixel(dis, 0),
                   color.pixel);

XMapWindow(dis, xwin);
XFlush(dis);
Другие вопросы по тегам