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


 /****************************************************
 **the HZK16 font demo by zhang kaohua 2004,3,24**
 *****************************************************/
#include 
#include 
#if UNIX | DOS_DJGPP

#endif
#define MWINCLUDECOLORS
#include "nano-X.h"

#define WIDTH 		320
#define HEIGHT 		200

int
main(int ac, char **av)
{
	GR_WINDOW_ID window;
  GR_WINDOW_ID bt1,bt2,bt3;
	GR_GC_ID gc;
	GR_FONT_ID fontid;
//	int x, y;// fnum;

	if (GrOpen() < 0)
		exit(1);

	window = GrNewWindowEx(GR_WM_PROPS_APPWINDOW,
		"fonts demo",
		GR_ROOT_WINDOW_ID, 0, 0, WIDTH, HEIGHT, BLACK);
	GrSelectEvents(window,
		GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_CLOSE_REQ);
	GrMapWindow(window);
  
  bt1=GrNewWindow(GR_ROOT_WINDOW_ID,30,200,70,30,3,GREEN,BLUE);
  bt2=GrNewWindow(GR_ROOT_WINDOW_ID,125,200,70,30,3,GREEN,BLUE);
  bt3=GrNewWindow(GR_ROOT_WINDOW_ID,220,200,70,30,3,GREEN,BLUE);
  GrSelectEvents(bt1,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_DOWN);
  GrSelectEvents(bt2,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_DOWN);
  GrSelectEvents(bt3,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_DOWN);
  GrMapWindow(bt1);
  GrMapWindow(bt2);
  GrMapWindow(bt3);
  
  gc = GrNewGC();
	GrSetGCUseBackground(gc, GR_FALSE);
	GrSetGCBackground(gc, BLACK);

       fontid = GrCreateFont("HZKFONT", 0, NULL);
       GrSetFontSize(fontid, 16);
       GrSetFontRotation(fontid, 330);         /* 33 degrees */
       GrSetFontAttr(fontid, GR_TFKERNING | GR_TFANTIALIAS, 0);
       GrSetGCFont(gc, fontid);

    GrSetGCForeground(gc, WHITE);
    GrSetGCBackground(gc,GREEN);
    GrText(bt1, gc, 13, 20,
           "显  示", -1, GR_TFASCII);
    GrText(bt2, gc, 13, 20,
           "清  除", -1, GR_TFASCII);
    GrText(bt3, gc, 13, 20,
           "退  出", -1, GR_TFASCII);
   
while (1)
  {
		GR_EVENT event;

		GrCheckNextEvent(&event);
		if (event.type == GR_EVENT_TYPE_CLOSE_REQ) {
			GrClose();
			exit(0);
		}
    if(event.type == GR_EVENT_TYPE_BUTTON_DOWN)
    {
      if(event.button.wid==bt1)
      {
        fontid = GrCreateFont("HZKFONT", 0, NULL);
        GrSetFontSize(fontid, 16);
        GrSetFontRotation(fontid, 330);         /* 33 degrees */
        GrSetFontAttr(fontid, GR_TFKERNING | GR_TFANTIALIAS, 0);
        GrSetGCFont(gc, fontid);
        GrSetGCForeground(gc, 255);
        GrSetGCBackground(gc,GREEN);
        
        GrText(window, gc, 115, 60,
           "Microwindows", -1, GR_TFASCII);
        GrText(window, gc, 80, 90,
           "欢迎使用中英文点阵字体", -1, GR_TFASCII);
        GrText(window, gc, 100, 120,
           "北京航空航天大学", -1, GR_TFASCII);
        GrText(window,gc,110,150,
           "2004年3月24日", -1, GR_TFASCII);
       }
       if(event.button.wid==bt2)  
       {
         GrSetGCForeground(gc,BLACK);
         GrSetGCBackground(gc,BLACK);
         GrFillRect(window,gc,0,0,320,200);
       } 
			 if(event.button.wid==bt3)
       {
         GrClose();
         exit(0);
       } 
       
    }
		GrFlush();
		GrDestroyFont(fontid);
	}
	GrClose();
	return 0;
}