📄 drawwindows.c
字号:
//---------------------------------------------------------绘制主界面#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 + -