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

📄 control.h

📁 S3C44B0X全套培训资料及源代码 e008s3c44b0x
💻 H
字号:
#ifndef __CONTROL_H__#define __CONTROL_H__#include "..\ucos-ii\includes.h"               /* uC/OS interface */#include "..\inc\drv\figure.h"#include "..\ucos-ii\add\list.h"#define OSCtrlMemSize	1000#define OSCtrlblkSize		256///////////////////////////控件类型/////////////////////#define CTRLTYPE_LISTCTRL	1	//列表框#define CTRLTYPE_TEXTCTRL	2	//文本框#define CTRLTYPE_PICTURECTRL	3	//图片框#define CTRLTYPE_BUTTONCTRL	4	//按钮#define CTRLTYPE_WINDOW	100		//窗口//////////////////////////控件风格/////////////////////#define CTRL_STYLE_DBFRAME			1	//双重边框#define CTRL_STYLE_FRAME			2	//单边框#define CTRL_STYLE_3DUPFRAME		3	//突起3D边框#define CTRL_STYLE_3DDOWNFRAME		4	//凹陷3D无边框#define CTRL_STYLE_NOFRAME			5	//无边框////////////////////////窗口风格////////////////////////#define WND_STYLE_MODE			0x10000		//有模式窗口#define WND_STYLE_MODELESS		0x00000		//无模式窗口#define WND_STYLE_TITLE			0x20000		//有窗口标题////////////////////////按钮ID/////////////////////////#define BUTTON_IDOK					1#define BUTTON_IDCANCEL			2////////////////////////////////////typedef struct typeWnd{	U32 CtrlType;	//控件的类型	U32 CtrlID;	structRECT WndRect;	//窗口的位置和大小	structRECT ClientRect;	//看翱谕户区域	U32 FontSize;	//窗口的字符大小	U32 style;		//窗口的的边框风格	U8 bVisible;	//是否可见	struct typeWnd* parentWnd;	//控件的父窗口指针	U8 (*CtrlMsgCallBk)(void*);	PDC pdc;	//窗口的绘图设备上下文	U16 Caption[20];	//窗口标题	List ChildWndList;	U32 FocusCtrlID;	//子窗口焦点ID	U32 preParentFocusCtrlID;	//显示窗口之前的父窗口焦点ID	OS_EVENT* WndDC_Ctrl_mem; //窗口DC控制权}Wnd, *PWnd;typedef struct {	U32 CtrlType;	//控件的类型	U32 CtrlID;	structRECT ListCtrlRect;	//控件的位置和大小	structRECT ClientRect;	//客户区域	U32 FontSize;	//控件的字符大小	U32 style;		//控件的的边框风格	U8 bVisible;	//是否可见	PWnd parentWnd;	//控件的父窗口指针	U8 (*CtrlMsgCallBk)(void*);}OS_Ctrl, *POS_Ctrl;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;	//列表框滚动条滑块方框}ListCtrl,*PListCtrl;typedef struct{	U32 CtrlType;	//控件的类型	U32 CtrlID;	//控件的ID	structRECT TextCtrlRect;	//文本框的位置和大小	structRECT ClientRect;	//客户区域	U32 FontSize;	//文本框的字符大小	U32 style;		//文本框的风格	U8 bVisible;	//是否可见	PWnd parentWnd;	//控件的父窗口指针	U8 (*CtrlMsgCallBk)(void*);	U8 bIsEdit;	//文本框是否处于编辑状态	char* KeyTable; //文本框的字符映射表	U16 text[40];	//文本框中的字符块}TextCtrl,*PTextCtrl;typedef struct{	U32 CtrlType;	//控件的类型	U32 CtrlID;	structRECT PictureCtrlRect;	//图片框的位置和大小	structRECT ClientRect;	//客户区域	U32 FontSize;	//图片框的字符大小	U32 style;		//图片框的风格	U8 bVisible;	//是否可见	PWnd parentWnd;	//控件的父窗口指针	U8 (*CtrlMsgCallBk)(void*);	char picfilename[12]; //图片文件名}PictureCtrl,*PPictureCtrl;typedef struct {	U32 CtrlType;	//控件的类型	U32 CtrlID;	structRECT ButtonCtrlRect;	//控件的位置和大小	structRECT ClientRect;	//客户区域	U32 FontSize;	//控件的字符大小	U32 style;		//控件的的边框风格	U8 bVisible;	//是否可见	PWnd parentWnd;	//控件的父窗口指针	U8 (*CtrlMsgCallBk)(void*);	U16 Caption[10];	//按纽标题}ButtonCtrl, *PButtonCtrl;void initOSCtrl();U32 SetWndCtrlFocus(PWnd pWnd, U32 CtrlID);	//设置窗口中控件的焦点U32 GetWndCtrlFocus(PWnd pWnd);void ReDrawOSCtrl();	//绘制所有的操作系统的控件OS_Ctrl* GetCtrlfromID(PWnd pWnd, U32 ctrlID);OS_Ctrl* CreateOSCtrl(U32 CtrlID, U32 CtrlType, structRECT* prect, U32 FontSize, U32 style, PWnd parentWnd);void SetCtrlMessageCallBk(POS_Ctrl pOSCtrl, U8(*CtrlMsgCallBk)(void*));void OSOnSysMessage(void* pMsg);void ShowCtrl(OS_Ctrl *pCtrl, U8 bVisible);PListCtrl CreateListCtrl(U32 CtrlID, structRECT* prect, int MaxNum, U32 FontSize, U32 style, PWnd parentWnd);U8 AddStringListCtrl(PListCtrl pListCtrl, U16 string[]);void ListCtrlReMoveAll(PListCtrl pListCtrl);void ReLoadListCtrl(PListCtrl pListCtrl,U16* string[],int nstr);void DrawListCtrl(PListCtrl pListCtrl);void ListCtrlSelMove(PListCtrl pListCtrl, int moveNum, U8 Redraw);	//列表框高亮度条移,正数下移,负数上移void ListCtrlOnTchScr(PListCtrl pListCtrl, int x, int y, U32 tchaction);PTextCtrl CreateTextCtrl(U32 CtrlID, structRECT* prect,  U32 FontSize, U32 style,char* KeyTable, PWnd parentWnd);void DestoryTextCtrl(PTextCtrl pTextCtrl);void SetTextCtrlText(PTextCtrl pTextCtrl, U16 *pch, U8 IsRedraw);U16* GetTextCtrlText(PTextCtrl pTextCtrl);void DrawTextCtrl(PTextCtrl pTextCtrl);void AppendChar2TextCtrl(PTextCtrl pTextCtrl, U16 ch, U8 IsReDraw);
void TextCtrlDeleteChar(PTextCtrl pTextCtrl,U8 IsReDraw);void SetTextCtrlEdit(PTextCtrl pTextCtrl, U8 bIsEdit);void TextCtrlOnTchScr(PTextCtrl pListCtrl, int x, int y, U32 tchaction);PPictureCtrl CreatePictureCtrl(U32 CtrlID, structRECT* prect,  char filename[], U32 style, PWnd parentWnd);void DestoryPictureCtrl(PPictureCtrl pPictureCtrl);void DrawPictureCtrl(PPictureCtrl pPictureCtrl);PButtonCtrl CreateButton(U32 CtrlID, structRECT* prect,  U32 FontSize, U32 style, U16 Caption[], PWnd parentWnd);void DestoryButton(PButtonCtrl pButton);void DrawButton(PButtonCtrl pButton);void ButtonOnTchScr(PButtonCtrl pButtonCtrl, int x, int y, U32 tchaction);PWnd CreateWindow(U32 CtrlID, structRECT* prect,  U32 FontSize, U32 style, U16 Caption[], PWnd parentWnd);void ShowWindow(PWnd pwnd, BOOLEAN isShow);void DrawWindow(PWnd pwnd);void WndOnTchScr(PWnd pCtrl, int x,int y, U32 tchaction);#endif

⌨️ 快捷键说明

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