?? control.h
字號:
#ifndef __CONTROL_H__
#define __CONTROL_H__
#include "..\ucos-ii\includes.h" /* uC/OS interface */
#include "..\inc\drv\figure.h"
#include "..\inc\drv\display.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(void);
U32 SetWndCtrlFocus(PWnd pWnd, U32 CtrlID); //設置窗口中控件的焦點
U32 GetWndCtrlFocus(PWnd pWnd);
void ReDrawOSCtrl(void); //繪制所有的操作系統的控件
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);
void DestoryListCtrl(PListCtrl plistCtrl);
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 DestoryWindow(PWnd pWnd);
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 + -