⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 drawwindows.c

📁 uClinux 下MicroWindows开发的电机控制平台软件和模拟示波器的双路数据采集系统源码
💻 C
📖 第 1 页 / 共 4 页
字号:
//---------------------------------------------------------绘制主界面#include "Head_DrawWindows.h"void FUN_DrawWindows(){  if(GrOpen()<0)//连接图形服务器,失败返回-1    {       printf("Nano-X Server Error!\n");       printf("Please make sure your Nano-X Server is running,then retry!\n");       exit();//非正常退出    }Gid_Draw_White=GrNewGC();GrSetGCForeground(Gid_Draw_White,WHITE);GrSetGCBackground(Gid_Draw_White,WHITE);//------------------------------------------------------Gid_Draw_Gray=GrNewGC();GrSetGCForeground(Gid_Draw_Gray,GRAY);GrSetGCBackground(Gid_Draw_Gray,GRAY);//------------------------------------------------------Gid_Draw_Black_White=GrNewGC();//为黑笔白底的画笔分配设备上下文,按钮按下时的效果GrSetGCForeground(Gid_Draw_Black_White,BLACK);GrSetGCBackground(Gid_Draw_Black_White,WHITE);//------------------------------------------------------Gid_Draw_Black_Gray=GrNewGC();//为黑笔灰底的画笔分配设备上下文,按钮的一般状态效果GrSetGCForeground(Gid_Draw_Black_Gray,BLACK);GrSetGCBackground(Gid_Draw_Black_Gray,GRAY);//------------------------------------------------------Gid_Draw_Green_Black_One=GrNewGC();//为通道1的绿笔黑底的画笔分配设备上下文,绘制波形的画笔GrSetGCForeground(Gid_Draw_Green_Black_One,GREEN);GrSetGCBackground(Gid_Draw_Green_Black_One,BLACK);//------------------------------------------------------Gid_Draw_Red_Black_Two=GrNewGC();//为通道2的红笔黑底的画笔分配设备上下文,绘制波形的画笔GrSetGCForeground(Gid_Draw_Red_Black_Two,RED);GrSetGCBackground(Gid_Draw_Red_Black_Two,BLACK);//------------------------------------------------------//Gid_Draw_Gray_Black=GrNewGC();//GrSetGCForeground(Gid_Draw_Gray_Black,GRAY);//GrSetGCBackground(Gid_Draw_Gray_Black,BLACK);//------------------------------------------------------Gid_Message_Text=GrNewGC();//为绿笔白底的画笔分配设备上下文,状态正常时状态栏的信息的笔GrSetGCForeground(Gid_Message_Text,GREEN);GrSetGCBackground(Gid_Message_Text,WHITE);//-------------------------------------------------------------------Gid_Font=GrCreateFont("HZKFONT",0,NULL);GrSetFontSize(Gid_Font,16);GrSetFontRotation(Gid_Font, 330);         /* 33 degrees */GrSetFontAttr(Gid_Font, GR_TFKERNING | GR_TFANTIALIAS, 0);//------------------------------------------------------//设置各个按钮和信息的字体 GrSetGCFont(Gid_Draw_Black_White, Gid_Font);GrSetGCFont(Gid_Draw_Black_Gray, Gid_Font);GrSetGCFont(Gid_Draw_Green_Black_One, Gid_Font);GrSetGCFont(Gid_Message_Text, Gid_Font);//-------------------------------------------------------------------	      Wid_Root=GrNewWindow(GR_ROOT_WINDOW_ID,0,0,320,240,0,BLACK,WHITE);//绘制根窗口      GrMapWindow(Wid_Root);//显示根窗口      //-------------------------------------------------------------------------------------	Wid_Wave=GrNewWindow(GR_ROOT_WINDOW_ID,0,0,320,200,1,WHITE,GRAY);//绘制波形显示窗口	//Wid_BackGround=GrNewPixmap(320,200,NULL);	//GrFillRect(Wid_BackGround,Gid_Draw_White,0,0,320,200);//画填充矩形为背景白色	//FUN_Draw_Angel(Wid_BackGround);//画坐标网格,这实际上实现了分层,背景只管背景的,前景只管前景的	//GrSetBackgroundPixmap(Wid_Wave,Wid_BackGround,0);//将坐标网格做为背景不再变化	GrMapWindow(Wid_Wave);//显示波形显示窗口	//绘制用户操作面板        //-------------------------------------------------------	//绘制控制面板窗口	Wid_Panel_Control=GrNewWindow(Wid_Root,0,240,320,40,2,WHITE,GRAY);//x0,y240,320*40        GrMapWindow(Wid_Panel_Control);//显示控制面板窗口        //绘制控制面板把手	Wid_Button_Panel_Control=GrNewWindow(Wid_Root,Button_Pannel_Start_X,Button_Pannel_Start_Y,Button_Pannel_Width,Button_Pannel_High,Button_Pannel_Borad_Width,Button_Pannel_Back_Color,Button_Pannel_Borad_Color);      	GrMapWindow(Wid_Button_Panel_Control);        GrText(Wid_Button_Panel_Control,Gid_Draw_Black_White,9,18,"控制",-1,GR_TFASCII);	  //绘制控制按钮          Wid_Button_Start=GrNewWindow(Wid_Panel_Control,Button_Start_X,Button_Start_Y,Button_Width,Button_High,Button_Borad_Width,Button_Back_Color_White,Button_Borad_Color);//开始	  Wid_Button_Store=GrNewWindow(Wid_Panel_Control,Button_Start_X+1*(Button_Width+Button_Between),Button_Start_Y,Button_Width,Button_High,Button_Borad_Width,Button_Back_Color_White,Button_Borad_Color);//存储	  Wid_Button_Show=GrNewWindow(Wid_Panel_Control,Button_Start_X+2*(Button_Width+Button_Between),Button_Start_Y,Button_Width,Button_High,Button_Borad_Width,Button_Back_Color_White,Button_Borad_Color);//再现	  Wid_Button_Stop=GrNewWindow(Wid_Panel_Control,Button_Start_X+3*(Button_Width+Button_Between),Button_Start_Y,Button_Width,Button_High,Button_Borad_Width,Button_Back_Color_White,Button_Borad_Color);//停止	//-------------------------------------------------------	//绘制分析面板窗口        Wid_Panel_Analyze=GrNewWindow(Wid_Root,0,240,320,40,2,WHITE,GRAY);//x0,y240,320*20        GrMapWindow(Wid_Panel_Analyze);//显示分析面板窗口        //绘制分析面板把手	Wid_Button_Panel_Analyze=GrNewWindow(Wid_Root,Button_Pannel_Start_X+1*(Button_Pannel_Width+Button_Pannel_Between),Button_Pannel_Start_Y,Button_Pannel_Width,Button_Pannel_High,Button_Pannel_Borad_Width,Button_Pannel_Back_Color,Button_Pannel_Borad_Color);        GrMapWindow(Wid_Button_Panel_Analyze);        GrText(Wid_Button_Panel_Analyze,Gid_Draw_Black_White,9,18,"分析",-1,GR_TFASCII);	  //绘制分析按钮	  	  Wid_Button_X=GrNewWindow(Wid_Panel_Analyze,Button_Start_X,Button_Start_Y,Button_Width,Button_High,Button_Borad_Width,Button_Back_Color_White,Button_Pannel_Borad_Color);	  GrMapWindow(Wid_Button_X);	  Wid_Button_Y=GrNewWindow(Wid_Panel_Analyze,Button_Start_X+2*(Button_Width+Button_Between),Button_Start_Y,Button_Width,Button_High,Button_Borad_Width,Button_Back_Color_White,Button_Pannel_Borad_Color);	  GrMapWindow(Wid_Button_Y);	  //X轴	  Wid_Button_LangX=GrNewWindow(Wid_Panel_Analyze,Button_Start_X+5*(Button_Width+Button_Between),Button_Start_Y,Button_Width,Button_High,Button_Borad_Width,Button_Back_Color_White,Button_Borad_Color);                    Wid_Button_ShortX=GrNewWindow(Wid_Panel_Analyze,Button_Start_X+6*(Button_Width+Button_Between),Button_Start_Y,Button_Width,Button_High,Button_Borad_Width,Button_Back_Color_White,Button_Borad_Color);          		  //Wid_Button_MoveLeftX=GrNewWindow(Wid_Panel_Analyze,Button_Start_X+7*(Button_Width+Button_Between),Button_Start_Y,Button_Width,Button_High,Button_Borad_Width,Button_Back_Color_White,Button_Borad_Color);          	  //Wid_Button_MoveRightX=GrNewWindow(Wid_Panel_Analyze,Button_Start_X+8*(Button_Width+Button_Between),Button_Start_Y,Button_Width,Button_High,Button_Borad_Width,Button_Back_Color_White,Button_Borad_Color);                	  GrMapWindow(Wid_Button_LangX);	  GrMapWindow(Wid_Button_ShortX);	  //GrMapWindow(Wid_Button_MoveLeftX);	  //GrMapWindow(Wid_Button_MoveRightX);	  //Y轴	  Wid_Button_LangY=GrNewWindow(Wid_Panel_Analyze,Button_Start_X+5*(Button_Width+Button_Between),Button_Start_Y,Button_Width,Button_High,Button_Borad_Width,Button_Back_Color_White,Button_Borad_Color);          	  Wid_Button_ShortY=GrNewWindow(Wid_Panel_Analyze,Button_Start_X+6*(Button_Width+Button_Between),Button_Start_Y,Button_Width,Button_High,Button_Borad_Width,Button_Back_Color_White,Button_Borad_Color);          		  Wid_Button_MoveUpY=GrNewWindow(Wid_Panel_Analyze,Button_Start_X+7*(Button_Width+Button_Between),Button_Start_Y,Button_Width,Button_High,Button_Borad_Width,Button_Back_Color_White,Button_Borad_Color);                 	  Wid_Button_MoveDownY=GrNewWindow(Wid_Panel_Analyze,Button_Start_X+8*(Button_Width+Button_Between),Button_Start_Y,Button_Width,Button_High,Button_Borad_Width,Button_Back_Color_White,Button_Borad_Color);	  GrMapWindow(Wid_Button_LangY);	  GrMapWindow(Wid_Button_ShortY);	  GrMapWindow(Wid_Button_MoveUpY);	  GrMapWindow(Wid_Button_MoveDownY);              	//-------------------------------------------------------------------------------------	//绘制通道选择面板窗口	Wid_Panel_Channel=GrNewWindow(Wid_Root,0,240,320,40,2,WHITE,GRAY);//x0,y240,320*20	GrMapWindow(Wid_Panel_Channel);//显示通道选择面板窗口	//绘制通道选择面板把手	Wid_Button_Panel_Channel=GrNewWindow(Wid_Root,Button_Pannel_Start_X+2*(Button_Pannel_Width+Button_Pannel_Between),Button_Pannel_Start_Y,Button_Pannel_Width,Button_Pannel_High,Button_Pannel_Borad_Width,Button_Pannel_Back_Color,Button_Pannel_Borad_Color);	GrMapWindow(Wid_Button_Panel_Channel);        GrText(Wid_Button_Panel_Channel,Gid_Draw_Black_White,9,18,"通道",-1,GR_TFASCII);	  //绘制通道选择按钮	  Wid_Button_Channel_One=GrNewWindow(Wid_Panel_Channel,Button_Start_X,Button_Start_Y,Button_Width,Button_High,Button_Borad_Width,Button_Back_Color_White,Button_Borad_Color);        	  Wid_Button_Channel_Two=GrNewWindow(Wid_Panel_Channel,Button_Start_X+1*(Button_Width+Button_Between),Button_Start_Y,Button_Width,Button_High,Button_Borad_Width,Button_Back_Color_White,Button_Borad_Color);       	  Wid_Button_Channel_All=GrNewWindow(Wid_Panel_Channel,Button_Start_X+2*(Button_Width+Button_Between),Button_Start_Y,Button_Width,Button_High,Button_Borad_Width,Button_Back_Color_White,Button_Borad_Color);          	//-------------------------------------------------------------------------------------	//绘制信息面板窗口        Wid_Panel_Message=GrNewWindow(Wid_Root,0,240,320,40,2,WHITE,GRAY);//x0,y240,320*20        GrMapWindow(Wid_Panel_Message);//显示信息面板窗口        //绘制信息面板把手	Wid_Button_Panel_Message=GrNewWindow(Wid_Root,Button_Pannel_Start_X+3*(Button_Pannel_Width+Button_Pannel_Between),Button_Pannel_Start_Y,Button_Pannel_Width,Button_Pannel_High,Button_Pannel_Borad_Width,Button_Pannel_Back_Color,Button_Pannel_Borad_Color);        GrMapWindow(Wid_Button_Panel_Message);        GrText(Wid_Button_Panel_Message,Gid_Draw_Black_White,9,18,"信息",-1,GR_TFASCII);	//-------------------------------------------------------------------------------------        //结束面板的绘制	        //-------------------------------------------------------------------------------------    //--------------------------------------------------------------------------------------------------------    //为个窗口(按钮)选择事件    //控制面板    GrSelectEvents(Wid_Button_Panel_Control,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_UP | GR_EVENT_MASK_BUTTON_DOWN);    GrSelectEvents(Wid_Button_Start,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_UP | GR_EVENT_MASK_BUTTON_DOWN);    GrSelectEvents(Wid_Button_Store,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_UP | GR_EVENT_MASK_BUTTON_DOWN);    GrSelectEvents(Wid_Button_Show,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_UP | GR_EVENT_MASK_BUTTON_DOWN);     GrSelectEvents(Wid_Button_Stop,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_UP |GR_EVENT_MASK_BUTTON_DOWN);    //分析面板    GrSelectEvents(Wid_Button_Panel_Analyze,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_UP |GR_EVENT_MASK_BUTTON_DOWN);    GrSelectEvents(Wid_Button_X,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_UP |GR_EVENT_MASK_BUTTON_DOWN);    GrSelectEvents(Wid_Button_Y,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_UP |GR_EVENT_MASK_BUTTON_DOWN);    GrSelectEvents(Wid_Button_LangX,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_UP |GR_EVENT_MASK_BUTTON_DOWN);    GrSelectEvents(Wid_Button_LangY,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_UP |GR_EVENT_MASK_BUTTON_DOWN);    GrSelectEvents(Wid_Button_ShortX,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_UP |GR_EVENT_MASK_BUTTON_DOWN);    GrSelectEvents(Wid_Button_ShortY,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_UP |GR_EVENT_MASK_BUTTON_DOWN);    //GrSelectEvents(Wid_Button_MoveLeftX,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_UP |GR_EVENT_MASK_BUTTON_DOWN);    GrSelectEvents(Wid_Button_MoveUpY,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_UP |GR_EVENT_MASK_BUTTON_DOWN);    //GrSelectEvents(Wid_Button_MoveRightX,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_UP |GR_EVENT_MASK_BUTTON_DOWN);    GrSelectEvents(Wid_Button_MoveDownY,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_UP |GR_EVENT_MASK_BUTTON_DOWN);    //通道选择面板    GrSelectEvents(Wid_Button_Panel_Channel,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_UP |GR_EVENT_MASK_BUTTON_DOWN);    GrSelectEvents(Wid_Button_Channel_One,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_UP |GR_EVENT_MASK_BUTTON_DOWN);    GrSelectEvents(Wid_Button_Channel_Two,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_UP |GR_EVENT_MASK_BUTTON_DOWN);    GrSelectEvents(Wid_Button_Channel_All,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_UP |GR_EVENT_MASK_BUTTON_DOWN);    //信息面板    GrSelectEvents(Wid_Button_Panel_Message,GR_EVENT_MASK_EXPOSURE | GR_EVENT_MASK_BUTTON_UP |GR_EVENT_MASK_BUTTON_DOWN);    //----------------------------------------------------------------------------------------------------------------------------        //开始捕获事件的循环    while(1)    {       GrGetNextEvent(&Event);//获取下一个事件       switch(Event.type)//对事件的类型进行判断       {   	   case GR_EVENT_TYPE_BUTTON_DOWN:	          //控制面板各个按钮的按下事件		  //把手		  if(Event.button.wid==Wid_Button_Panel_Control)		  {                         if(Mark_Panel_State==0)//现在面板状态为缩,下一步要为伸		      {		       GrUnmapWindow(Wid_Button_Panel_Analyze);//先隐藏其它把手		       GrUnmapWindow(Wid_Button_Panel_Channel);		       GrUnmapWindow(Wid_Button_Panel_Message);		       GrMoveWindow(Wid_Panel_Control,0,205);//伸出面板		       GrMoveWindow(Wid_Button_Panel_Control,5,205);//把把手靠在面板上		       GrFillRect(Wid_Button_Panel_Control,Gid_Draw_Gray,0,0,Button_Pannel_Width,Button_Pannel_High);//画填充矩形为按钮		       GrText(Wid_Button_Panel_Control,Gid_Draw_Black_Gray,9,18,"隐藏",-1,GR_TFASCII);//黑笔灰底		       //显示按钮,并重会文字,窗口不会被覆盖可是在窗口上的绘图会被覆盖		       GrMapWindow(Wid_Button_Start);		       GrMapWindow(Wid_Button_Store);		       GrMapWindow(Wid_Button_Show);		       GrMapWindow(Wid_Button_Stop);		       //恢复按钮的状态		       if(Mark_System_State==1)		       {		        GrFillRect(Wid_Button_Start,Gid_Draw_White,0,0,Button_Width,Button_High);//画填充矩形为按钮			GrText(Wid_Button_Start,Gid_Draw_Black_White,12,20,"暂停",-1,GR_TFASCII);  		       }		       else		       {			GrFillRect(Wid_Button_Start,Gid_Draw_Gray,0,0,Button_Width,Button_High);//画填充矩形为按钮			GrText(Wid_Button_Start,Gid_Draw_Black_Gray,9,18,"开始",-1,GR_TFASCII);	       		       }		       		       if(Mask_Store==0)		       {		         GrFillRect(Wid_Button_Store,Gid_Draw_Gray,0,0,Button_Width,Button_High);//画填充矩形为按钮	                 GrText(Wid_Button_Store,Gid_Draw_Black_Gray,9,18,"存储",-1,GR_TFASCII);		       }		       else		       {		        GrFillRect(Wid_Button_Store,Gid_Draw_White,0,0,Button_Width,Button_High);//画填充矩形为按钮	                GrText(Wid_Button_Store,Gid_Draw_Black_White,12,20,"存储",-1,GR_TFASCII);		       }		       		       if(Mask_Show==0)		       {		         GrFillRect(Wid_Button_Show,Gid_Draw_Gray,0,0,Button_Width,Button_High);//画填充矩形为按钮	                 GrText(Wid_Button_Show,Gid_Draw_Black_Gray,9,18,"再现",-1,GR_TFASCII);		       }		       else		       {		         GrFillRect(Wid_Button_Show,Gid_Draw_White,0,0,Button_Width,Button_High);//画填充矩形为按钮	                 GrText(Wid_Button_Show,Gid_Draw_Black_White,12,20,"再现",-1,GR_TFASCII);		       }		       		       GrFillRect(Wid_Button_Stop,Gid_Draw_Gray,0,0,Button_Width,Button_High);//画填充矩形为按钮	               GrText(Wid_Button_Stop,Gid_Draw_Black_Gray,9,18,"停止",-1,GR_TFASCII);		       		       Mark_Panel_State=1;//表示面板已伸开		       

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -