📄 demoevent.c
字号:
/******************************************************************Microwindows 事件驱动演示程序 zhang kaohua 2003.12.3*************演示内容:鼠标事件,键盘事件.*****************************************************************/#define MWINCLUDECOLORS#include<stdio.h>#include"nano-X.h"static GR_WINDOW_ID w; //声明根窗口static GR_GC_ID gc; //声明根窗口绘图上下文static GR_GC_ID gLamp; //声明灯的绘图上下文static GR_GC_ID gid; //声明按钮的绘图上下文 static GR_GC_ID t; //声明欢迎词绘图上下文 GR_EVENT event; //声明事件 GR_WINDOW_ID btRed; //声明按钮窗口 GR_WINDOW_ID btGreen; GR_WINDOW_ID btBlue; GR_WINDOW_ID btLamp; //声明灯窗口 GR_WINDOW_ID we; GR_FONT_ID font; //设置字体号void draw_main_win(GR_WINDOW_ID w,GR_GC_ID gc);void draw_Error_win(char *arg[]);void do_btdown(GR_EVENT_BUTTON *event);int main(int ac,char **av) { if (GrOpen()<0) { printf("Can't open graphics\n"); exit(1); } //w=GrNewWindow(GR_ROOT_WINDOW_ID,70,30,500,400,3,GREEN,BLUE);//实例化根窗口 gc=GrNewGC();//实例化上下文 // GrMapWindow(w);//显示窗口 draw_main_win(w,gc); //for(;;){GrGetNextEvent(&event);} GrClose(); return 0; }void draw_main_win(GR_WINDOW_ID w,GR_GC_ID gc){//draw main window w=GrNewWindow(GR_ROOT_WINDOW_ID,10,10,300,200,3,GREEN,BLUE);//实例化根窗口 //gc=GrNewGC();//实例化上下文 GrMapWindow(w);//显示窗口 //GR_GC_ID gid; /*编译为Native版时变量可在函数内设,但交叉编译时要在程序声明段设*/ btLamp=GrNewWindow(w,125,25,50,50,0,GREEN,0); btRed=GrNewWindow(w,55,150,50,20,1,WHITE,BLUE); btGreen=GrNewWindow(w,125,150,50,20,1,WHITE,BLUE); btBlue=GrNewWindow(w,195,150,50,20,1,WHITE,BLUE); GrMapWindow(btLamp); GrMapWindow(btRed); GrMapWindow(btGreen); GrMapWindow(btBlue); //画灯 gLamp=GrNewGC(); GrSetGCForeground(gLamp,GRAY); GrSetGCBackground(gLamp,GREEN); GrFillEllipse(btLamp,gLamp,25,25,25,25); //画红按钮 gid=GrNewGC(); GrSetGCForeground(gid,RED); GrSetGCBackground(gid,WHITE); GrFillEllipse(btRed,gid,25,10,23,8); //画绿按钮 gid=GrNewGC(); GrSetGCForeground(gid,GREEN); GrSetGCBackground(gid,WHITE); GrFillEllipse(btGreen,gid,25,10,23,8); //画蓝按钮 gid=GrNewGC(); GrSetGCForeground(gid,BLUE); GrSetGCBackground(gid,WHITE); GrFillEllipse(btBlue,gid,25,10,23,8); //GR_GC_ID t;//为欢迎词选择字体颜色. t=GrNewGC(); GrSetGCForeground(t,RED); GrSetGCBackground(t,GREEN); font=GrCreateFont("times.ttf",30,NULL);//为欢迎词设置字体 GrSetGCFont(t,font); GrText(w,t,75,115,"WELCOME TO BEIJING CHINA",-1,GR_TFASCII); GrSetGCForeground(t,YELLOW); GrSetGCBackground(t,RED); GrText(btRed,t,16,14,"RED",-1,GR_TFASCII); GrSetGCForeground(t,YELLOW); GrSetGCBackground(t,GREEN); GrText(btGreen,t,8,14,"GREEN",-1,GR_TFASCII); GrSetGCForeground(t,YELLOW); GrSetGCBackground(t,BLUE); GrText(btBlue,t,14,14,"BLUE",-1,GR_TFASCII); we=GrNewWindow(w,260,10,30,20,2,YELLOW,BLUE); GrMapWindow(we); GrSetGCForeground(gc,RED); GrSetGCBackground(gc,YELLOW); GrText(we,gc,2,15,"EXIT",-1,GR_TFASCII); //为个窗口(按钮)选择事件 GrSelectEvents(btRed,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_DOWN); GrSelectEvents(btGreen,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_DOWN); GrSelectEvents(btBlue,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_DOWN); GrSelectEvents(btLamp,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_DOWN); GrSelectEvents(we,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_UP);while(1){ GrGetNextEvent(&event); //printf("by threewater test\n"); switch(event.type) { case GR_EVENT_TYPE_BUTTON_DOWN: do_btdown(&event.button); break; case GR_EVENT_TYPE_BUTTON_UP: if (event.button.wid == we) { GrClose(); exit(0); } break; //case GR_EVENT_TYPE_KEY_DOWN: // do_keydown(&event.key); // break; }}}void draw_Error_win(char *arg[]){ GR_WINDOW_ID winError; winError=GrNewWindow(w,20,100,400,300,1,WHITE,BLUE);}void do_btdown(GR_EVENT_BUTTON *event){//调用鼠标事件 if(event->wid==btRed) { gLamp=GrNewGC(); GrSetGCForeground(gLamp,RED); GrSetGCBackground(gLamp,GREEN); GrFillEllipse(btLamp,gLamp,25,25,22,22); return; } if(event->wid==btGreen) { gLamp=GrNewGC(); GrSetGCForeground(gLamp,GREEN); GrFillEllipse(btLamp,gLamp,25,25,22,22); return; } if(event->wid==btBlue) { gLamp=GrNewGC(); GrSetGCForeground(gLamp,BLUE); GrFillEllipse(btLamp,gLamp,25,25,22,22); return; } /*if (event->wid == we) { GrClose(); exit(0); }*/}/*void do_keydown(GR_EVENT_KEY_DOWN *event){}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -