📄 graph.c
字号:
void InitGraph()
{
int gdriver, gmode;
registerbgidriver(EGAVGA_driver);
detectgraph(&gdriver,&gmode);
initgraph(&gdriver,&gmode,"");
cleardevice();
}
void InitButton(ButtonClass *button,FormClass form)
{
button->left=(form.left+form.right)/2-30;
button->top=form.bottom-24;
button->right=button->left+60;
button->bottom=button->top+18;
button->charx=2;
button->chary=5;
button->fontcolor=RED;
button->forecolor=WHITE;
button->fontsize=6;
button->caption="Button";
}
void InitTitleBar(TitleBarClass *bar,FormClass form)
{
bar->left=form.left+2;
bar->top=form.top+2;
bar->right=form.right-2;
bar->bottom=bar->top+14;
bar->caption="TitleBar";
}
void InitForm(FormClass *form)
{
form->left=150;
form->top=150;
form->right=450;
form->bottom=280;
form->bkcolor=WHITE;
}
void MsgBox(char *messege)
{
int size; /*图形大小*/
void *image;/*储存图形的数据*/
FormClass form;
ButtonClass button;
InitForm(&form);
/*储存消息框覆盖的图形*/
size=imagesize(form.left-1,form.top-1,form.right+2,form.bottom+2);
image=(void *)malloc(size);
getimage(form.left-1,form.top-1,form.right+2,form.bottom+2,image);/*储存消息框所覆盖的图形*/
/*显示窗体*/
DisplayForm(form);
/*显示关闭按钮*/
InitButton(&button,form);
button.caption=" Close";
DisplayButton(button);
/*显示消息提示语*/
setcolor(RED);/*设置消息字体颜色*/
outtextxy(form.left+4,form.top+30,messege);
getch();
putimage(form.left-1,form.top-1,image,COPY_PUT);/*恢复消息框所覆盖的图形*/
}
void DisplayForm(FormClass form)
{
TitleBarClass titlebar;
InitTitleBar(&titlebar,form); /*初始化标题栏 */
/*画框*/
setcolor(DARKGRAY);/*深灰*/
rectangle(form.left,form.top,form.right,form.bottom);
setcolor(LIGHTGRAY);/*浅灰*/
rectangle(form.left+1,form.top+1,form.right-1,form.bottom-1);
FillColor(form.left+1,form.top+1,form.right-1,form.bottom-1,form.bkcolor);
DisplayTitleBar(titlebar);
}
void FillColor(int left,int top,int right,int bottom,int color)
{
/*自定义的填充函数,填充矩形*/
int i,j;
for(j=left+1;j<right;j++)
for(i=top+1;i<bottom;i++)
putpixel(j,i,color);
}
void DisplayButton(ButtonClass btn)
{
/*按钮*/
setcolor(DARKGRAY);/*深灰*/
rectangle(btn.left,btn.top,btn.right,btn.bottom);/*按钮外框,阴影*/
setcolor(LIGHTGRAY);/*浅灰*/
rectangle(btn.left+1,btn.top+1,btn.right-1,btn.bottom-1);/*按钮内框*/
FillColor(btn.left+1,btn.top+1,btn.right-1,btn.bottom-1,btn.forecolor);
setcolor(btn.fontcolor);
settextstyle(0,0,USER_CHAR_SIZE);/*设置字体大小*/
setusercharsize(btn.fontsize,1,btn.fontsize,1);/*设置字体*/
outtextxy(btn.left+btn.charx,btn.top+btn.chary,btn.caption);
}
void DisplayTitleBar(TitleBarClass titlebar)
{
/*画出标题栏*/
ButtonClass button;
button.right=titlebar.right-2;
button.left=button.right-10;
button.top=titlebar.top+2;
button.bottom=titlebar.bottom-2;
button.caption="X";
button.fontcolor=RED;
button.forecolor=CYAN;
button.fontsize=1;
button.charx=2;
button.chary=2;
setcolor(BLUE);
rectangle(titlebar.left,titlebar.top,titlebar.right,titlebar.bottom);/*标题栏*/
FillColor(titlebar.left,titlebar.top,titlebar.right,titlebar.bottom,CYAN);
settextstyle(0,0,USER_CHAR_SIZE);/*设置标题字体大小*/
setusercharsize(1,1,1,1);/*设置标题栏字体8*8点阵字体*/
setcolor(WHITE);/*设置标题栏字体颜色*/
outtextxy(titlebar.left+4,titlebar.top+4,titlebar.caption);
DisplayButton(button);
button.right=titlebar.right-14;
button.left=button.right-10;
button.caption="O";
DisplayButton(button);
button.charx=1;
button.right=titlebar.right-26;
button.left=button.right-10;
button.caption="-";
DisplayButton(button);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -