?? control.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 + -