⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fg.htm

📁 c语言基本的应用便于初学者学习使用 简单易懂
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<p>void save_screen(void far *buf[4]); <br>
void restore_screen(void far *buf[4]); </p>

<p>int maxx, maxy; </p>

<p>int main(void) <br>
{ <br>
&nbsp;&nbsp; int gdriver=DETECT, gmode, errorcode; <br>
&nbsp;&nbsp; void far *ptr[4]; </p>

<p>&nbsp;&nbsp; /* auto-detect the graphics driver and mode */ <br>
&nbsp;&nbsp; initgraph(&amp;gdriver, &amp;gmode, &quot;&quot;); <br>
&nbsp;&nbsp; errorcode = graphresult(); /* check for any errors
*/ <br>
&nbsp;&nbsp; if (errorcode != grOk) <br>
&nbsp;&nbsp; { <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;Graphics error:
%s\n&quot;, grapherrormsg(errorcode)); <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;Press any key to
halt:&quot;); <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getch(); <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(1); <br>
&nbsp;&nbsp; } <br>
&nbsp;&nbsp; maxx = getmaxx(); <br>
&nbsp;&nbsp; maxy = getmaxy(); </p>

<p>&nbsp;&nbsp; /* draw an image on the screen */ <br>
&nbsp;&nbsp; rectangle(0, 0, maxx, maxy); <br>
&nbsp;&nbsp; line(0, 0, maxx, maxy); <br>
&nbsp;&nbsp; line(0, maxy, maxx, 0); </p>

<p>&nbsp;&nbsp; save_screen(ptr);&nbsp;&nbsp;&nbsp; /* save the
current screen */ <br>
&nbsp;&nbsp; getch();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
/* pause screen */ <br>
&nbsp;&nbsp; cleardevice();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
/* clear screen */ <br>
&nbsp;&nbsp; restore_screen(ptr); /* restore the screen */ <br>
&nbsp;&nbsp; getch();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
/* pause screen */ </p>

<p>&nbsp;&nbsp; closegraph(); <br>
&nbsp;&nbsp; return 0; <br>
} </p>

<p>void save_screen(void far *buf[4]) <br>
{ <br>
&nbsp;&nbsp; unsigned size; <br>
&nbsp;&nbsp; int ystart=0, yend, yincr, block; </p>

<p>&nbsp;&nbsp; yincr = (maxy+1) / 4; <br>
&nbsp;&nbsp; yend = yincr; <br>
&nbsp;&nbsp; size = imagesize(0, ystart, maxx, yend); /* get byte
size of image */ </p>

<p>&nbsp;&nbsp; for (block=0; block&lt;=3; block++) <br>
&nbsp;&nbsp; { <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ((buf[block] = farmalloc(size))
== NULL) <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; closegraph(); <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
printf(&quot;Error: not enough heap space in
save_screen().\n&quot;); <br>
&nbsp; exit(1); <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getimage(0, ystart, maxx, yend,
buf[block]); <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ystart = yend + 1; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yend += yincr + 1; <br>
&nbsp;&nbsp; } <br>
} </p>

<p>void save_screen(void far *buf[4]) <br>
{ <br>
&nbsp;&nbsp; unsigned size; <br>
&nbsp;&nbsp; int ystart=0, yend, yincr, block; </p>

<p>&nbsp;&nbsp; yincr = (maxy+1) / 4; <br>
&nbsp;&nbsp; yend = yincr; <br>
&nbsp;&nbsp; size = imagesize(0, ystart, maxx, yend); /* get byte
size of image */ </p>

<p>&nbsp;&nbsp; for (block=0; block&lt;=3; block++) <br>
&nbsp;&nbsp; { <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ((buf[block] = farmalloc(size))
== NULL) <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; closegraph(); <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
printf(&quot;Error: not enough heap space in
save_screen().\n&quot;); <br>
&nbsp; exit(1); <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } </p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; getimage(0, ystart, maxx, yend,
buf[block]); <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ystart = yend + 1; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yend += yincr + 1; <br>
&nbsp;&nbsp; } <br>
} </p>

<p>void restore_screen(void far *buf[4]) <br>
{ <br>
&nbsp;&nbsp; int ystart=0, yend, yincr, block; </p>

<p>&nbsp;&nbsp; yincr = (maxy+1) / 4; <br>
&nbsp;&nbsp; yend = yincr; </p>

<p>&nbsp;&nbsp; for (block=0; block&lt;=3; block++) <br>
&nbsp;&nbsp; { <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; putimage(0, ystart, buf[block],
COPY_PUT); <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; farfree(buf[block]); <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ystart = yend + 1; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yend += yincr + 1; <br>
&nbsp;&nbsp; } <br>
} <br>
&nbsp; <br>
&nbsp; </p>

<p>函数名: getlinesettings <br>
功&nbsp; 能: 取当前线型、模式和宽度 <br>
用&nbsp; 法: void far getlinesettings(struct linesettingstype
far *lininfo): <br>
程序例: </p>

<p>#include &lt;graphics.h&gt; <br>
#include &lt;stdlib.h&gt; <br>
#include &lt;stdio.h&gt; <br>
#include &lt;conio.h&gt; </p>

<p>/* the names of the line styles supported */ <br>
char *lname[] = { &quot;SOLID_LINE&quot;, <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;DOTTED_LINE&quot;, <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;CENTER_LINE&quot;, <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;DASHED_LINE&quot;, <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&quot;USERBIT_LINE&quot; <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
}; </p>

<p>int main(void) <br>
{ <br>
&nbsp;&nbsp; /* request auto detection */ <br>
&nbsp;&nbsp; int gdriver = DETECT, gmode, errorcode; <br>
&nbsp;&nbsp; struct linesettingstype lineinfo; <br>
&nbsp;&nbsp; int midx, midy; <br>
&nbsp;&nbsp; char lstyle[80], lpattern[80], lwidth[80]; </p>

<p>&nbsp;&nbsp; /* initialize graphics and local variables */ <br>
&nbsp;&nbsp; initgraph(&amp;gdriver, &amp;gmode, &quot;&quot;); </p>

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

<p>&nbsp;&nbsp; midx = getmaxx() / 2; <br>
&nbsp;&nbsp; midy = getmaxy() / 2; </p>

<p>&nbsp;&nbsp; /* get information about current line settings */
<br>
&nbsp;&nbsp; getlinesettings(&amp;lineinfo); </p>

<p>&nbsp;&nbsp; /* convert line information into strings */ <br>
&nbsp;&nbsp; sprintf(lstyle, &quot;%s is the line style.&quot;, <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
lname[lineinfo.linestyle]); <br>
&nbsp;&nbsp; sprintf(lpattern, &quot;0x%X is the user-defined
line pattern.&quot;, <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
lineinfo.upattern); <br>
&nbsp;&nbsp; sprintf(lwidth, &quot;%d is the line
thickness.&quot;, <br>
&nbsp;&nbsp;&nbsp; lineinfo.thickness); </p>

<p>&nbsp;&nbsp; /* display the information */ <br>
&nbsp;&nbsp; settextjustify(CENTER_TEXT, CENTER_TEXT); <br>
&nbsp;&nbsp; outtextxy(midx, midy, lstyle); <br>
&nbsp;&nbsp; outtextxy(midx, midy+2*textheight(&quot;W&quot;),
lpattern); <br>
&nbsp;&nbsp; outtextxy(midx, midy+4*textheight(&quot;W&quot;),
lwidth); </p>

<p>&nbsp;&nbsp; /* clean up */ <br>
&nbsp;&nbsp; getch(); <br>
&nbsp;&nbsp; closegraph(); <br>
&nbsp;&nbsp; return 0; <br>
} <br>
&nbsp; <br>
&nbsp; </p>

<p>函数名: getmaxcolor <br>
功&nbsp; 能: 返回可以传给函数setcolor的最大颜色值
<br>
用&nbsp; 法: int far getmaxcolor(void); <br>
程序例: </p>

<p>#include &lt;graphics.h&gt; <br>
#include &lt;stdlib.h&gt; <br>
#include &lt;stdio.h&gt; <br>
#include &lt;conio.h&gt; </p>

<p>int main(void) <br>
{ <br>
&nbsp;&nbsp; /* request auto detection */ <br>
&nbsp;&nbsp; int gdriver = DETECT, gmode, errorcode; <br>
&nbsp;&nbsp; int midx, midy; <br>
&nbsp;&nbsp; char colstr[80]; </p>

<p>&nbsp;&nbsp; /* initialize graphics and local variables <br>
&nbsp; */ initgraph(&amp;gdriver, &amp;gmode, &quot;&quot;); </p>

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

<p>&nbsp;&nbsp; midx = getmaxx() / 2; <br>
&nbsp;&nbsp; midy = getmaxy() / 2; </p>

<p>&nbsp;&nbsp; /* grab the color info. and convert it to a
string */ <br>
&nbsp;&nbsp; sprintf(colstr, &quot;This mode supports colors
0..%d&quot;, getmaxcolor()); </p>

<p>&nbsp;&nbsp; /* display the information */ <br>
&nbsp;&nbsp; settextjustify(CENTER_TEXT, CENTER_TEXT); <br>
&nbsp;&nbsp; outtextxy(midx, midy, colstr); </p>

<p>&nbsp;&nbsp; /* clean up */ <br>
&nbsp;&nbsp; getch(); <br>
&nbsp;&nbsp; closegraph(); <br>
&nbsp;&nbsp; return 0; <br>
} <br>
&nbsp; <br>
&nbsp; <br>
&nbsp; </p>

<p>函数名: getmaxx <br>
功&nbsp; 能: 返回屏幕的最大x坐标 <br>
用&nbsp; 法: int far getmaxx(void); <br>
程序例: </p>

<p>#include &lt;graphics.h&gt; <br>
#include &lt;stdlib.h&gt; <br>
#include &lt;stdio.h&gt; <br>
#include &lt;conio.h&gt; </p>

<p>int main(void) <br>
{ <br>
&nbsp;&nbsp; /* request auto detection */ <br>
&nbsp;&nbsp; int gdriver = DETECT, gmode, errorcode; <br>
&nbsp;&nbsp; int midx, midy; <br>
&nbsp;&nbsp; char xrange[80], yrange[80]; </p>

<p>&nbsp;&nbsp; /* initialize graphics and local variables */ <br>
&nbsp;&nbsp; initgraph(&amp;gdriver, &amp;gmode, &quot;&quot;); </p>

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

<p>&nbsp;&nbsp; midx = getmaxx() / 2; <br>
&nbsp;&nbsp; midy = getmaxy() / 2; </p>

<p>&nbsp;&nbsp; /* convert max resolution values into strings */ <br>
&nbsp;&nbsp; sprintf(xrange, &quot;X values range from
0..%d&quot;, getmaxx()); <br>
&nbsp;&nbsp; sprintf(yrange, &quot;Y values range from
0..%d&quot;, getmaxy()); </p>

<p>&nbsp;&nbsp; /* display the information */ <br>
&nbsp;&nbsp; settextjustify(CENTER_TEXT, CENTER_TEXT); <br>
&nbsp;&nbsp; outtextxy(midx, midy, xrange); <br>
&nbsp;&nbsp; outtextxy(midx, midy+textheight(&quot;W&quot;),
yrange); </p>

<p>&nbsp;&nbsp; /* clean up */ <br>
&nbsp;&nbsp; getch(); <br>
&nbsp;&nbsp; closegraph(); <br>
&nbsp;&nbsp; return 0; <br>
} <br>
&nbsp; <br>
&nbsp; </p>

<p>函数名: getmaxy <br>
功&nbsp; 能: 返回屏幕的最大y坐标 <br>
用&nbsp; 法: int far getmaxy(void); <br>
程序例: </p>

<p>#include &lt;graphics.h&gt; <br>
#include &lt;stdlib.h&gt; <br>
#include &lt;stdio.h&gt; <br>
#include &lt;conio.h&gt; </p>

<p>int main(void) <br>
{ <br>
&nbsp;&nbsp; /* request auto detection */ <br>
&nbsp;&nbsp; int gdriver = DETECT, gmode, errorcode; <br>
&nbsp;&nbsp; int midx, midy; <br>
&nbsp;&nbsp; char xrange[80], yrange[80]; </p>

<p>&nbsp;&nbsp; /* initialize graphics and local variables */ <br>
&nbsp;&nbsp; initgraph(&amp;gdriver, &amp;gmode, &quot;&quot;); </p>

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

<p>&nbsp;&nbsp; midx = getmaxx() / 2; <br>
&nbsp;&nbsp; midy = getmaxy() / 2; </p>

<p>&nbsp;&nbsp; /* convert max resolution values into strings */ <br>
&nbsp;&nbsp; sprintf(xrange, &quot;X values range from
0..%d&quot;, getmaxx()); <br>
&nbsp;&nbsp; sprintf(yrange, &quot;Y values range from
0..%d&quot;, getmaxy()); </p>

<p>&nbsp;&nbsp; /* display the information */ <br>
&nbsp;&nbsp; settextjustify(CENTER_TEXT, CENTER_TEXT); <br>
&nbsp;&nbsp; outtextxy(midx, midy, xrange); <br>
&nbsp;&nbsp; outtextxy(midx, midy+textheight(&quot;W&quot;),
yrange); </p>

<p>&nbsp;&nbsp; /* clean up */ <br>
&nbsp;&nbsp; getch(); <br>
&nbsp;&nbsp; closegraph(); <br>
&nbsp;&nbsp; return 0; <br>
} <br>
&nbsp; </p>

<p>函数名: getmodename <br>
功&nbsp; 能:
返回含有指定图形模式名的字符串指针 <br>
用&nbsp; 法: char *far getmodename(int mode_name); <br>
程序例: </p>

<p>#include &lt;graphics.h&gt; <br>
#include &lt;stdlib.h&gt; <br>
#include &lt;stdio.h&gt; <br>
#include &lt;conio.h&gt; </p>

<p>int main(void) <br>
{ <br>
&nbsp;&nbsp; /* request autodetection */ <br>
&nbsp;&nbsp; int gdriver = DETECT, gmode, errorcode; <br>
&nbsp;&nbsp; int midx, midy, mode; <br>
&nbsp;&nbsp; char numname[80], modename[80]; </p>

<p>&nbsp;&nbsp; /* initialize graphics and local variables */ <br>
&nbsp;&nbsp; initgraph(&amp;gdriver, &amp;gmode, &quot;&quot;); </p>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -