int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int midx, midy, mode; char numname[80], modename[80];
/* initialize graphics and local variables */ initgraph(&gdriver, &gmode, "");
/* read result of initialization */ errorcode = graphresult(); /* an error occurred */ if (errorcode != grOk) { PRintf("Graphics error: %s/n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); /* terminate with an error code */ exit(1); }
midx = getmaxx() / 2; midy = getmaxy() / 2;
/* get mode number and name strings */ mode = getgraphmode(); sprintf(numname, "%d is the current mode number.", mode); sprintf(modename, "%s is the current graphics mode", getmodename(mode));
/* display the information */ settextjustify(CENTER_TEXT, CENTER_TEXT); outtextxy(midx, midy, numname); outtextxy(midx, midy+2*textheight("W"), modename);
/* clean up */ getch(); closegraph(); return 0; }
函数名: getimage 功 能: 将指定区域的一个位图存到主存中 用 法: void far getimage(int left, int top, int right, int bottom, void far *bitmap); 程序例:
for (block=0; block<=3; block++) { if ((buf[block] = farmalloc(size)) == NULL) { closegraph(); printf("Error: not enough heap space in save_screen()./n"); exit(1); }
for (block=0; block<=3; block++) { if ((buf[block] = farmalloc(size)) == NULL) { closegraph(); printf("Error: not enough heap space in save_screen()./n"); exit(1); }
/* the names of the line styles supported */ char *lname[] = { "SOLID_LINE", "DOTTED_LINE", "CENTER_LINE", "DASHED_LINE", "USERBIT_LINE" };
int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; struct linesettingstype lineinfo; int midx, midy; char lstyle[80], lpattern[80], lwidth[80];
/* 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 */ }
midx = getmaxx() / 2; midy = getmaxy() / 2;
/* get information about current line settings */ getlinesettings(&lineinfo);
/* convert line information into strings */ sprintf(lstyle, "%s is the line style.", lname[lineinfo.linestyle]); sprintf(lpattern, "0x%X is the user-defined line pattern.", lineinfo.upattern); sprintf(lwidth, "%d is the line thickness.", lineinfo.thickness);
/* display the information */ settextjustify(CENTER_TEXT, CENTER_TEXT); outtextxy(midx, midy, lstyle); outtextxy(midx, midy+2*textheight("W"), lpattern); outtextxy(midx, midy+4*textheight("W"), lwidth);
/* clean up */ getch(); closegraph(); return 0; }
函数名: getmaxcolor 功 能: 返回可以传给函数setcolor的最大颜色值 用 法: int far getmaxcolor(void); 程序例:
int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int midx, midy; char colstr[80];
/* 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 */ }
midx = getmaxx() / 2; midy = getmaxy() / 2;
/* grab the color info. and convert it to a string */ sprintf(colstr, "This mode supports colors 0..%d", getmaxcolor());
/* display the information */ settextjustify(CENTER_TEXT, CENTER_TEXT); outtextxy(midx, midy, colstr);
/* clean up */ getch(); closegraph(); return 0; }
函数名: getmaxx 功 能: 返回屏幕的最大x坐标 用 法: int far getmaxx(void); 程序例:
int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int midx, midy; char xrange[80], yrange[80];
/* 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 */ }
midx = getmaxx() / 2; midy = getmaxy() / 2;
/* convert max resolution values into strings */ sprintf(xrange, "X values range from 0..%d", getmaxx()); sprintf(yrange, "Y values range from 0..%d", getmaxy());
/* display the information */ settextjustify(CENTER_TEXT, CENTER_TEXT); outtextxy(midx, midy, xrange); outtextxy(midx, midy+textheight("W"), yrange);
/* clean up */ getch(); closegraph(); return 0; }
函数名: getmaxy 功 能: 返回屏幕的最大y坐标 用 法: int far getmaxy(void); 程序例:
int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int midx, midy; char xrange[80], yrange[80];
/* 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 */ }
midx = getmaxx() / 2; midy = getmaxy() / 2;
/* convert max resolution values into strings */ sprintf(xrange, "X values range from 0..%d", getmaxx()); sprintf(yrange, "Y values range from 0..%d", getmaxy());
/* display the information */ settextjustify(CENTER_TEXT, CENTER_TEXT); outtextxy(midx, midy, xrange); outtextxy(midx, midy+textheight("W"), yrange);
int main(void) { /* request autodetection */ int gdriver = DETECT, gmode, errorcode; int midx, midy, mode; char numname[80], modename[80];
/* 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 */ }
midx = getmaxx() / 2; midy = getmaxy() / 2;
/* get mode number and name strings */ mode = getgraphmode(); sprintf(numname, "%d is the current mode number.", mode); sprintf(modename, "%s is the current graphics mode.", getmodename(mode));
/* display the information */ settextjustify(CENTER_TEXT, CENTER_TEXT); outtextxy(midx, midy, numname); outtextxy(midx, midy+2*textheight("W"), modename);
/* clean up */ getch(); closegraph(); return 0; }
函数名: getmoderange 功 能: 取给定图形驱动程序的模式范围 用 法: void far getmoderange(int graphdriver, int far *lomode, int far *himode); 程序例:
int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; int midx, midy; int low, high; char mrange[80];
/* 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 */ }
midx = getmaxx() / 2; midy = getmaxy() / 2;
/* get the mode range for this driver */ getmoderange(gdriver, &low, &high);
/* convert mode range info. into strings */ sprintf(mrange, "This driver supports modes %d..%d", low, high);
/* display the information */ settextjustify(CENTER_TEXT, CENTER_TEXT); outtextxy(midx, midy, mrange);
/* clean up */ getch(); closegraph(); return 0; }
函数名: getpalette 功 能: 返回有关当前调色板的信息 用 法: void far getpalette(struct palettetype far *palette); 程序例:
int main(void) { /* request auto detection */ int gdriver = DETECT, gmode, errorcode; struct palettetype pal; char psize[80], pval[20]; int i, ht; int y = 10;
/* initialize graphics and local variables */ initgraph(&gdriver, &gmode, "");
/* read result of initialization */ errorcode = graphresult(); /* an error occurred */ if (errorcode != grOk) { printf("Graphics error: %s/n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); /* terminate with an error code */ exit(1); }
/* grab a copy of the palette */ getpalette(&pal);
/* convert palette info. into strings */ sprintf(psize, "The palette has %d / modifiable entries.", pal.size);
/* display the information */ outtextxy(0, y, psize); if (pal.size != 0) { ht = textheight("W"); y += 2*ht; outtextxy(0, y, "Here are the current / values:"); y += 2*ht; for (i=0; i<pal.size; i++, y+=ht) { sprintf(pval, "palette[%02d]: 0x%02X", i, pal.colors[i]); outtextxy(0, y, pval); } }