导航

一个X Window编程的小例子

Posted on 2010-07-13 15:34  teasp  阅读(2645)  评论(0)    收藏  举报

这是在网上找到的一个小例子,关于X Window编程的。那个例子本身无法编译通过,我做了少量的修改使之可以编译并且运行。

#include <stdio.h>
#include
<unistd.h>
#include
<X11/Xlib.h>
#include
<X11/Xmu/WinUtil.h>
//#include <X11/Xutil.h>

int main(void)
{
Display
*display;
Window window;
XSetWindowAttributes attr;
XSizeHints
*sz;

/* create a display connection */
display
= XOpenDisplay(NULL);
if (!display) {
printf(
"NullPointerException\n");
return 1;
}
/* create and set attributes of window */
window
= XCreateWindow(display, XDefaultRootWindow(display),
100, 100, 300, 300, 2, XDefaultDepth(display, 0),
InputOutput, CopyFromParent,
0, &attr);

/* communicate with Window Manager */
XStoreName(display, window,
"Hello world!");
sz
= XAllocSizeHints();
sz
->x = 100;
sz
->y = 100;
sz
->width = 300;
sz
->height = 300;
sz
->flags = (1L<<0) | (1L<<1);
XSetNormalHints(display, window, sz);
XSetIconName(display, window,
"-----");

/* mapping window */
printf(
"Map window\n");
XMapWindow(display, window);
getchar();

printf(
"1XFlush\n");
XFlush(display);
getchar();

sleep(
10);

/* close window */
printf(
"Destroy Window\n");
XDestroyWindow(display, window);
getchar();

printf(
"2XFlush\n");
XFlush(display);
getchar();

/* close display */
printf(
"close display\n");
XCloseDisplay(display);
getchar();

return 0;
}

原例子:http://fanqiang.chinaunix.net/a4/b8/20010601/190001312.html