www.pudn.com > microwindows.example10.rar > demodraw.c


/*******************************************************************
//Microwindows绘图演示程序.zhang kaohua 2003.12.2
*******************************************************************/
#define MWINCLUDECOLORS
#include
#include"nano-X.h"

static GR_WINDOW_ID w;//声明根窗口
static GR_WINDOW_ID we;
static GR_EVENT event;
static GR_GC_ID gc;//声明根窗口上下文

int main(int ac,char **av)
  {
    
   if (GrOpen()<0)
    {
     printf("Can't open graphics\n");
     exit(0);
    }
 
    
    w=GrNewWindow(GR_ROOT_WINDOW_ID,10,10,300,200,3,GREEN,BLUE);//实例化根窗口
    gc=GrNewGC();//实例化上下文
    GrMapWindow(w);//显示窗口

    //画直线  
    GrLine(w,gc,70,20,70,175);
    GrLine(w,gc,140,20,140,175);
    GrLine(w,gc,210,20,210,175);
    GrLine(w,gc,270,20,270,175);
    
    //画矩形
    GrRect(w,gc,100,50,50,20);
   
    //画圆和椭圆
    GrEllipse(w,gc,50,50,50,50);
    
    //画实圆和实椭圆
    GrFillEllipse(w,gc,50,50,25,25);
    GrFillEllipse(w,gc,125,80,30,10);

    //
    GrSetGCForeground(gc,YELLOW);
    GrSetGCBackground(gc,GREEN);
    GrText(w,gc,150,100,"Hello (^o^)",-1,GR_TFASCII);
    
    we=GrNewWindow(w,260,10,30,20,1,YELLOW,BLUE);
    GrMapWindow(we);
    GrSetGCForeground(gc,GREEN);
    GrSetGCBackground(gc,YELLOW);
    GrText(we,gc,2,15,"EXIT",-1,GR_TFASCII);
    GrSelectEvents(we,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_DOWN);
   for(;;)
    {
      GrCheckNextEvent(&event);
      switch (event.type)
        {
			    case GR_EVENT_TYPE_BUTTON_DOWN:
				    if (event.button.wid == we)
              {
		            GrClose();
		            exit(0);
              }
				  break;
        }
        
    }
   GrClose();
   return 0;
  }