2013-01-05 45 views
1

这是Linux。我创建了一个窗口,我想将其背景颜色更改为绿色。这就是我的代码的样子:用C++更改Xlib窗口背景颜色

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); 

我看到的窗口是白色的。使用X11可以在Linux中更改窗口背景颜色吗?谢谢!

回答

3

如果你只是想要一个绿色的背景,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);