Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1326093
  • 博文数量: 268
  • 博客积分: 10698
  • 博客等级: 上将
  • 技术积分: 2867
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-14 22:21
文章分类

全部博文(268)

文章存档

2012年(19)

2011年(13)

2010年(29)

2009年(26)

2008年(99)

2007年(82)

我的朋友

分类: C/C++

2008-07-13 04:35:11




#include <X11/Xlib.h>
#include <stdio.h>
#include <stdlib.h>

Window
create_simple_window(Display* display, int width, int height, int x, int y)
{
  int screen_num = DefaultScreen(display);
  int win_border_width = 2;
  Window win;
  win = XCreateSimpleWindow(display, RootWindow(display, screen_num),
                            x, y, width, height, win_border_width,
                            BlackPixel(display, screen_num),
                            WhitePixel(display, screen_num));
  XMapWindow(display, win);
  XFlush(display);
  return win;
}

GC
create_gc(Display* display, Window win, int reverse_video)
{
  GC gc;
  unsigned long valuemask = 0;
  XGCValues values; /* initial values for the GC. */
  gc = XCreateGC(display, win, valuemask, &values);
  if (gc < 0) {
        fprintf(stderr, "XCreateGC: \n");
  }
  return gc;
}

void
main(int argc, char* argv[])
{
  Display* display;
  int screen_num;
  Window win;
  unsigned int display_width,
               display_height;
  unsigned int width, height;
  char *display_name = getenv("DISPLAY");
  GC gc;
  Colormap screen_colormap;
  XColor blue;
  Status rc;
  display = XOpenDisplay(display_name);
  screen_num = DefaultScreen(display);
  display_width = DisplayWidth(display, screen_num);
  display_height = DisplayHeight(display, screen_num);

  width = (display_width / 3);
  height = (display_height / 3);
  
  win = create_simple_window(display, width, height, 0, 0);

  gc = create_gc(display, win, 0);
  XSync(display, False);

  screen_colormap = DefaultColormap(display, DefaultScreen(display));

  rc = XAllocNamedColor(display, screen_colormap, "blue", &blue, &blue);
  
  XSetForeground(display, gc, blue.pixel);
  XDrawArc(display, win, gc, 100-(30/2), 50-(50/2), 30, 30, 0, 360*64);

     XFlush(display);
       sleep(10);
   XCloseDisplay(display);

}


编译:
# cc -Wall -L/usr/X11R6/lib -lX11
阅读(1387) | 评论(0) | 转发(0) |
0

上一篇:[Perl脚本] 作品4号

下一篇:GIMP高级教程

给主人留下些什么吧!~~