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 + -
显示快捷键?