| 汉字图形窗口界面设计方法及函数编程技巧
| | 新课程小学计算机论文摘要 该文讨论了汉字图形窗口界面设计的新课程小学计算机论文一般方法,给出了窗口生成,窗口管理,菜单生成与管理,鼠标与键盘管理等实现的新课程小学计算机论文子函数,并给出了部分c语言源程序。这些函数的组合可以设计出丰富的汉字图形窗口界面。 一、图形窗口设计函数 主要包括窗口生成与管理函数,如窗口生成,窗口打开,窗口关闭,窗口删除等。 1.窗口结构定义方法 typedef struct gwin { int x0,y0,x1.y1; /*窗口位置及大小*/ int border; /*窗口边框类型*/ int wcolor; /*窗口背景颜色*/ char wstate; /*窗口状态标志*/ char far *buffer; /*指向窗口缓冲区指针*/ }gwin; 在gwin中,border为窗口的边框属性,可以根据不同要求设计出多种边框类型业,以美化窗口界面。 2.窗口子函数 窗口生成子函数:gwin * gwincreate(x0,y0,x1,y1,border,colo r) int x0,y0,x1,y1; /*窗口位置及大小*/ bordermode border; /*窗口边框类型*/ int color; /*窗口背景颜色*/ 窗口显示子函数:gwindisplay(gwin *w) w为用gwincreate生成的窗口指针,即此函数画出窗口。 窗口打开子函数:gwinopen(gwin * w) 此函数调用gwindisplay来显示窗口,并存储屏幕。 窗口关闭子函数:gwinclose(gwin * w) 此函数关闭已打开的窗口,恢复屏幕,但此窗口数据还保存,可再次打开。 窗口删除子函数:gwinkill(gwin * w)此窗口彻底清除窗口,不可重新打开。 3.部分程序 下面给出实现上述功能的c语言程序 /*windows create*/ #include <stdio.h> #include <dos.h> #include <stdilb.h> #include <string.h> #include <conio.h> #include <graph.h> #define cr 0x0d #define esc 0x1b #define left 0x4b #define right 0x4d #define up 0x4d #define down 0x50 #define open 1 /*窗口为打开状态*/ #define close 0 /*窗口为关闭状态*/ #define mouse 0 /*是否有鼠标移动*/ /*定义窗口边框类型*/ typedef enum { noborder,/*普通窗口,系统默认值*/ tborder,/*窗口有凸边框类型*/ wborder,/*窗口有凹边框类型*/ twborder,/*窗口有凸凹边框类型*/ wtborder,/*窗口有凹凸边框类型*/ cborder,/*窗口有汉字边框类型*/ ... /*其它窗口类型*/ }bordermode; gwin * gwincreate(x0,y0,x1,y1,border,color) int x0,y0,x1,y1; bordermode border; int color; { gwin *w; w=malloc(sizeof(gwin)); w->x0=x0; w->y0=y0; w->x1=x1; w->y1=y1; if(border==noborder)w->border=noborder; if(border==wborder)w->border=wborder; if(border==tborder)w->border=tborder; if(border==twborder)w->border=twborder; if(border==wtborder)w->border=wtborder; if(border==cborder)w->border=cborder; w->wcoloe=color; w->buffer=null; return(w); } void gwindisplay(gwin * w) { if(w->border==noborder)drawgwin(w,noborder); if(w->border==wborder)drawgwin(w,wborder); if(w->border==tborder)drawgwin(w,tborder); if(w->border==wtborder)drawgwin(w,twborder); if(w->border==twborder)drawgwin(w,twborder); if(w->border==cborder)drawgwin(w,cborder); } void gwinopen(gwin * w) { if(w->wstate==open)return 0; w->buffer=(char far *)malloc((unsigned int)) -imagesize(w->x0,w->y0,w->x1,w->y1) -getimage(w->x0,w->y0,w->x1,w->y1,w->buffer); w->wstate=open; gwindisplay(w); } void gwinclose(gwin * w) { if(w->wstate==close)return 0; -putimage(w->x0,w->y0,w->buffer,-gpset); free((char far *) w->buffer); w->wstate=colse; } void gwinkill(gwin * w) { if(w->wstate==open)gwinclose(w); free(w); } 二、菜单窗口界面生成与管理子函数 1.菜单结构定义说明 typedef struct g menu{ gwin * w; /*含有菜单的窗口*/ char * * chstring;/*菜单中汉字串指针*/ int xnum;/*水平方向菜单分布项*/ int ynum;/*垂直方向菜单分布项*/
| | | |
|