edit.h
来自「好记星的控件,包括button,list,对文件操作」· C头文件 代码 · 共 181 行
H
181 行
/****************************************************************************/
/* */
/* Copyright (C) 2005 SHENZHEN MEIJIN CO.LTD */
/* */
/* FILE NAME: Edit.h */
/* MODULE NAME: Edit */
/* DESCRIPTION: Edit head file */
/* */
/****************************************************************************/
/* DTAE AUTHOR VERSION REMARKS */
/* =========== ========== ========= ======================================*/
/* 2005-12-28 gaolinhui V1.0 create */
/****************************************************************************/
#ifndef __EDIT_H__
#define __EDIT_H__
/*编辑消息定义(下面为编辑控件发送给其“OWNER”的消息)*/
#ifndef CM_EDITOR
#define CM_EDITOR CM_KNLEDT_BASE
#endif
/* 宏定义 */
/* 定义编辑中的分隔符号和特殊字符标志符号(参见字符编码格式)*/
#define CHAR_RETURN 0x0D /*回车符*/
/*允许输入字符类型(用于定义MEditParam类结构中的"wAllowChar"变量)*/
/* 普通字符类型定义 */
#define EDITALLOW_NUMBER 0x0001 /*允许输入数字('0'-'9')*/
#define EDITALLOW_ENCHAR 0x0002 /*允许输入英文字符('A'-'Z')和('a'-'z')*/
#define EDITALLOW_SYMBOL 0x0004 /*允许输入除数字和英文字符外的其它可打印ASCII字符*/
#define EDITALLOW_ENTER 0x0008 /*允许输入回车符(CHAR_RETURN)*/
#define EDITALLOW_ASCII 0x000f /*允许输入所有ASCII字符*/
#define EDITALLOW_SBCCASE 0x0010 /*允许输入全角字符*/
#define EDITALLOW_HANDWRITE 0X0020 /*系统保留位,为允许输入手写字符(此宏定义用户不需要使用)*/
#define EDITALLOW_ALL 0xFF1F /*允许输入所有字符*/
/*编辑控件类型宏定义(MEdit.uStyle中使用到的宏)*/
#define EDS_READONLY 0x0010 /*编辑控件初始化为只读(不可编辑)*/
#define EDS_MULTILINE 0x0020 /*编辑控件为多行编辑*/
#define EDS_PASSWORD 0x0040 /*编辑控件为编辑密码数据(此时只能为单行编辑)*/
#define EDS_INSERSECAP 0x0080 /*编辑控件中的标题要反白显示*/
#define EDS_LINETHREAD 0x0100 /*编辑控件中要画行分隔线*/
#define EDS_NOBACKGROUND 0x0400 /*编辑控件不画背景*/
#define EDS_NOMARK 0x0800 /*不允许编辑器Mark功能*/
/*编辑消息定义(下面是编辑控件接受的消息)*/
#define CMEX_EDITOR_HAVEMARKED (CM_EDITOR+2) /*编辑控件中有MARK选择块*/
#define CMEX_EDITOR_CANCELMARK (CM_EDITOR+3) /*编辑控件中的MARK选择块被取消*/
#define CMEX_EDITOR_DATACHANGED (CM_EDITOR+4) /*编辑数据已经被改变*/
#define CMEX_EDITOR_BUFFERFULL (CM_EDITOR+5) /*编辑缓冲区满*/
typedef struct tagEdtCmdEx
{
UINT uType; //消息类型
APGUI_STRUCT_MODEL* pEditHdl; //Edit控件句柄
}EdtCmdEx;
/* 结构声明 */
typedef struct tagMEditParam
{ /*编辑参数类结构*/
UINT uRowSpace; /*行间距(单位为象素点)*/
UINT uIndent; /*悬挂缩进字符数(即从第二行开始,显示缩进的字符个数)*/
UINT16 wAllowChar; /*允许输入字符类型,由下面的宏决定*/
UINT16 wFontID; /*字库ID*/
}MEditParam;
typedef struct tag_MEditCursor
{ /*编辑器光标结构*/
BOOL bCursorState; //当前光标是否已显示
INT16 wCurLine; //光标所在的行
INT16 wCurCol; //光标所在的列
UINT uCursorMem; //当前光标位置字符在数据缓冲区中的位置
HTIMER hTimer; //光标时钟句柄
}MEditCursor;
typedef struct tag_MEditBlock
{ /*反白块的结构*/
UINT uBlkHead; //选择字符块块头位置
UINT uBlkTail; //选择字符块块尾位置
}MEditBlock;
typedef struct tag_MEditInfo
{
UINT8 *pCaption; /*编辑字段标题名称*/
UINT8 *pBuf; /*编辑数据的存放地址*/
UINT uBufLen; /*编辑缓冲区的总长度,即用于存放数据的BUFFER缓冲区的长度*/
UINT uUseMemLen; /*编辑缓冲区的使用长度*/
UINT uMaxEditLen; /*最大允许编辑长度(以显示长度为判断依据,其中半角字符为一个单位长、全角字符为两个单位长、特殊字符长度以其中的定义为准)*/
UINT uUseDspLen; /*已使用的编辑长度*/
UINT uRowSpace; /*行间距(单位为象素点)*/
UINT uIndent; /*悬挂缩进字符数(即从第二行开始,显示缩进的字符个数)*/
UINT16 wState; /*编辑器的当前状态*/
UINT16 wAllowChar; /*允许输入字符类型*/
UINT16 wFirstChar; /*优先字符类型,这个字符类型将决定使何种输入法,其宏定义与“wAllowChar”完全相同*/
UINT16 wFontID; /*字库ID*/
UINT8 byPassword; /*编辑密码时的显示字符*/
UINT8 padding[3];
/****以下成员参数用于编辑过程中记录某些数据****/
UINT8 *pScrnStart; /*本显示屏的数据起始位置*/
UINT uStart; /*显示数据的开始行号(多行编辑时)或列号(单行编辑时)*/
UINT uDataLines; /*编辑数据总行数*/
MEditCursor m_CurSor; /*光标*/
MEditBlock m_Block; /*反白块*/
/****以下成员变量用于保存最后的笔点坐标****/
UINT16 wXPos; /*笔点X值*/
UINT16 wYPos; /*笔点Y值*/
}MEditInfo;
typedef struct tag_MEdit
{
UINT uObjectID; //当前窗口中, 该控件的标识ID号
INT16 uX; //控件区域
INT16 uY;
UINT16 uWidth;
UINT16 uHeight;
FPGUIHANDLEEVENT pMsgHandle; //消息处理函数入口
UINT uStyle; //编辑器风格
UINT8 *pEditBuf; //编辑器的数据缓冲区BUFFER
UINT uBufLen; //编辑器的数据缓冲区长度
MEditInfo* pmEditInfo; //编辑器信息结构
} MEdit;
//edit face parameter
typedef struct{
UINT32 dwBackColor; //背景颜色
UINT32 dwSpLineColor; //行分隔线颜色
UINT32 dwTextColor; //文本颜色
UINT32 dwHLItemBKColor; //高亮显示的背景颜色
UINT32 dwLItemTextColor; //高亮显示的文本颜色
}MEditFace;
//====================================
//Dennyhan added this for warning or error
VOID EditInitialize(VOID);
/*编辑器的消息处理函数*/
INT EditHandleEvent(APGUI_STRUCT_MODEL *pGui, UINT uEvent, UINT uParam);
/*设置编辑器的参数,Ap初始化时调用,否则用默认的参数初始化*/
BOOL EditSetParam(MEdit* pEdit,MEditParam* pParam);
/*设置编辑器标题*/
VOID EditSetCaption(MEdit* pEdit,UINT8* pCaption);
/*获取编辑器的只读属性*/
BOOL EditIsReadOnly(MEdit* pEdit);
/*编辑器是否被编辑过*/
BOOL EditIsModified(MEdit* pEdit);
/*编辑器的总行数*/
UINT EditGetLineCount(MEdit* pEdit);
/*编辑器选中所有数据*/
BOOL EditSetAll(MEdit* pEdit);
/*获取光标内存位置*/
BOOL EditGetCursorMem(MEdit* pEdit,UINT* pCurMem);
/*设置光标内存位置*/
BOOL EditSetCursorMem(MEdit* pEdit,UINT uMemPos);
/*获取编辑器行列位置*/
BOOL EditGetCursorLineRow(MEdit* pEdit,UINT* pLine, UINT* pRow);
/*设置编辑器光标的行列*/
BOOL EditSetCursorLineRow(MEdit* pEdit, UINT uLine, UINT uRow);
/*设置编辑器的数据*/
BOOL EditSetText(MEdit* pEdit, UINT8* pData);
/*编辑器设置编辑buffer,注意:如果模板中没有指定buffer,在Ap初始化中必须调用此函数*/
BOOL EditSetBuffer(MEdit* pEdit,UINT8* pBuf,UINT uBufLen);
/*获取编辑器buffer*/
UINT8* EditGetBuffer(MEdit* pEdit);
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?