📄 template.h
字号:
#ifndef __TEMPLATE__H__
#define __TEMPLATE__H__
//template.h
#include"..\ucos-ii\includes.h" /* uC/OS interface */
#include "..\ucos-ii\add\osaddition.h"
#include"..\inc\osfile.h"
#include"..\inc\drv\rtc.h"
#include "..\inc\drv.h"
#include <string.h>
#include "..\ucos-ii\add\list.h"
#include "..\inc\drv\figure.h"
#include "..\inc\drv\display.h"
#include "..\inc\maro.h"
#include "..\template.h"
//数据结构
typedef struct{
U32 CtrlType; //控件的类型
U32 CtrlID;
structRECT ListCtrlRect; //列表框的位置和大小
structRECT ClientRect; //列表框列表区域
U32 FontSize;
U32 style; //列表框的风格
U8 bVisible; //是否可见
PWnd parentWnd; //控件的父窗口指针
U8 (*CtrlMsgCallBk)(void*);
U16 **pListText; //列表框所容纳的文本指针
int ListMaxNum; //列表框所容纳的最大文本的行数
int ListNum; //列表框所容纳的文本的行数
int ListShowNum; //列表框所能显示的文本行数
int CurrentHead; //列表的表头号
int CurrentSel; //当前选中的列表项号
structRECT ListCtrlRollRect; //列表框滚动条方框
structRECT RollBlockRect; //列表框滚动条滑块方框
int Max_Word_Num; // 单条列表所包含的最多字数
u8 IsDraw3DRect; // 是否画三维边框的矩形
}ListCtrl2, *PListCtrl2;
//变量外部声明
extern List OSCtrl; //系统控件的链表,表头保留
extern OS_MEM *pCtrlMem;
extern int OSFontSize[];
extern OS_EVENT *Rtc_Rw_Sem; //Rtc读写控制权旗语
//消息定义
#define OSM_MENU_SELCHANGE 999 //菜单的选择被改变的消息
#define OSM_LISTCTRL2_SELCHANGE 998 // 开关量选择改变的消息
// 模板预定义常量定义
#define CTRLTYPE_MENU 5 //水平列表框
#define MENU_SHOW_NUM 2 //水平菜单显示条目
#define MENU_NAME_NUM 2 //菜单名称所占字数
#define CLEARANCEx (OSFontSize[FONTSIZE_MIDDLE]/2) // 复合显示中的字串间隙,X向
#define CLEARANCEy (OSFontSize[FONTSIZE_MIDDLE]/2)
#define CLEARANCEmenu 8
#define SWIT_NAME_NUM 3 //开关量名称所占字节长度,均为假定值,可调节
#define SWIT_VAL_NUM 1 // 开关量状态所占字节长度
#define SWIT_NUM_DISP 3 // 要显示的开关量的数目
#define SWIT_NUM_CTRL 5 // 要控制的开关量的数目
#define SIMU_NAME_NUM 4 //模拟量量名称所占字节长度
#define SIMU_VAL_NUM 3 //模拟量数据段所占字节长度
#define SIMU_UNIT_NUM 3 //模拟量单位所占字节长度
#define SIMU_NUM 5 // 要显示的模拟量的数目
#define LINE_WIDTH_DEFAULT 6 //缺省的直线宽度
#define HELP_ITEM_NUM 2 // 帮助界面下,选项的数目
//////////////////////////////////////////////////////////////////////////////////////
///////////////////////////// 基本API函数 //////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
PDC GetCtrlParentDC(POS_Ctrl pCtrl);
void ReleaseCtrlParentDC(POS_Ctrl pCtrl);
void strChar2U8(U8 ch2[], const char ch1[]);
void U82strChar(char ch2[], const U8 ch1[] );
void Int2strChar(char ch[], const int number);
int strChar2Int(char ch[]);
void Unicode2strChar(char ch2[], const u16 ch1[]);
int CntUstrNum(u16 *ustr) ; // 计算Unicode 串的字数
//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////// 简单图形API函数 (new) /////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
void HorizonLine(PDC pdc,int Point1x, int Point1y ,int Point2x, int Point2y);
void VerticalLine(PDC pdc, int Point1x, int Point1y, int Point2x, int Point2y);
void UniformLine(PDC pdc, int Point1x, int Point1y, int Point2x, int Point2y, int PenWidth);
void Draw3DDownRect(PDC pdc, int Textx,int Texty,int TextNum, u8 fnt); //画3D 凹矩形,用于模拟量数字的显示
void Draw3DDownRect2(PDC pdc, structRECT * prect); ////画3D 凸矩形,用于开关量显示
void Draw3DUpRect(PDC pdc, int Textx,int Texty,int TextNum, u8 fnt); //画3D 凹矩形,用于模拟量数字的显示
void Draw3DUpRect2(PDC pdc, structRECT * prect) ;//画3D 凹矩形,用于模拟量数字的显示
//////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////// 状态量显示函数:模拟量+开关量 //////////////////////////
///////////////////////////////////////////////////////////////////////////////////////
void SwitDisp(PDC pdc,structPOINT pStartPt, u16 *SwitName, u16 *SwitVal); //single 开关量的显示
void SimuDisp(PDC pdc, structPOINT pStartPt, u16 *SimuName, u16 *SimuVal, u16 *SimuUnit);//single 模拟量复合显示
void CmpSwitDisp(PDC pdc,structPOINT pStartPt, u16 **SwitName, u16 **SwitVal, int SwitNum); //复合开关量的显示
void CmpSimuDisp(PDC pdc, structPOINT pStartPt, u16 **SimuName, u16 **SimuVal, u16 **SimuUnit, int SimuNum);//模拟量复合显示
//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////// 控件函数 //////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
PListCtrl CreateMenu(U32 CtrlID, structRECT* prect, int MaxNum, U32 FontSize, U32 style, PWnd parentWnd);
void MenuDrawClient(PListCtrl pListCtrl, PDC pdc);
void DrawMenu(PListCtrl pListCtrl);
void MenuSelMove(PListCtrl pListCtrl, int moveNum, U8 Redraw); //列表框高亮度条移,正数下移,负数上移
void ListCtrl2SelMove(PListCtrl2 pListCtrl, int moveNum, U8 Redraw);//列表框高亮度条移,正数下移,负数上移
void DrawListCtrl2(PListCtrl2 pListCtrl);
void CreateListCtrl2Patch(PListCtrl2 pListCtrl, int Max_Word_Num, u8 IsDraw3DRect);
void TextOutRect2(PDC pdc, structRECT * prect, U16 * ch, U8 bunicode, U8 fnt);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -