C语言

A 开头函数 B 开头函数 C 开头函数 D 开头函数 E 开头函数 F 开头函数 G 开头函数 H 开头函数 I 开头函数 K 开头函数 L 开头函数 M 开头函数 O 开头函数 P 开头函数 R 开头函数 S 开头函数 T 开头函数 U 开头函数 V 开头函数 _ 开头函数 转换函数 诊断函数 接口函数 字符判别函数 目录函数 输入输出函数 数学函数 操作函数 进程函数 字符串操作函数 时间日期函数 存储分配函数 assert.h头文件 alloc.h头文件 ctype.h头文件 dir.h头文件 dos.h头文件 errno.h头文件 fcntl.h头文件 float.h头文件 graphics.h头文件 io.h头文件 limits.h头文件 malloc.h头文件 math.h头文件 mem.h头文件 process.h头文件 setjmp.h头文件 share.h头文件 signal.h头文件 stdarg.h头文件 stddef.h头文件 stdio.h头文件 stdlib.h头文件 string.h头文件 time.h头文件 values.h头文件

函数名: putimage
功  能: 在屏幕上输出一个位图
用  法: #include <graphics.h>
        void far putimage(int x, int y, void far *bitmap, int op);
程序例:

#include <graphics.h>    
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

#define ARROW_SIZE 10

void draw_arrow(int x, int y);

int main(void)
{
   /* request autodetection */
   int gdriver = DETECT, gmode, errorcode;
   void *arrow;
   int x, y, maxx;
   unsigned int size;

   /* initialize graphics and local variables */
   initgraph(&gdriver, &gmode, "");

   /* read result of initialization */
   errorcode = graphresult();
   if (errorcode != grOk)  /* an error occurred */
   {
      printf("Graphics error: %s\n", grapherrormsg(errorcode));
      printf("Press any key to halt:");
      getch();
      exit(1); /* terminate with an error code */
   }

   maxx = getmaxx();
   x = 0;
   y = getmaxy() / 2;

   /* draw the image to be grabbed */
   draw_arrow(x, y);

   /* calculate the size of the image */
   size = imagesize(x, y-ARROW_SIZE, x+(4*ARROW_SIZE), y+ARROW_SIZE);

   /* allocate memory to hold the image */
   arrow = malloc(size);

   /* grab the image */
   getimage(x, y-ARROW_SIZE, x+(4*ARROW_SIZE), y+ARROW_SIZE, arrow);

   /* repeat until a key is pressed */
   while (!kbhit())
   {
      /* erase old image */
      putimage(x, y-ARROW_SIZE, arrow, XOR_PUT);

      x += ARROW_SIZE;
      if (x >= maxx)
          x = 0;

      /* plot new image */
      putimage(x, y-ARROW_SIZE, arrow, XOR_PUT);
   }

   /* clean up */
   free(arrow);
   closegraph();
   return 0;
}

void draw_arrow(int x, int y)
{
   /* draw an arrow on the screen */
   moveto(x, y);
   linerel(4*ARROW_SIZE, 0);
   linerel(-2*ARROW_SIZE, -1*ARROW_SIZE);
   linerel(0, 2*ARROW_SIZE);
   linerel(2*ARROW_SIZE, -1*ARROW_SIZE);
}