ime.h

来自「好记星的控件,包括button,list,对文件操作」· C头文件 代码 · 共 127 行

H
127
字号
/****************************************************************************/
/*                                                                          */
/*              Copyright (C) 2002 SHENZHEN MEIJIN CO.LTD                   */
/*                                                                          */
/* FILE NAME:   InputMe.H                                                   */
/* MODULE NAME: 输入法 Input Method Editor                                  */
/* DESCRIPTION: 输入法公开头文件                                            */
/*                                                                          */
/****************************************************************************/
/*    DTAE       AUTHOR     VERSION                 REMARKS                 */
/* =========== ==========  =========  ======================================*/
/* 2001-03-17  Michael     Ver 1.00   创建                                  */
/* 2002-09-04  Michael     Ver 2.00   Os3.2标准化                           */
/* 2003-03-24  Qorse       Ver 3.00   学生机(无笔点)版本                    */
/* 2003-06-13  谢永良       删除函数ID号和模块调用                          */
/****************************************************************************/
/*------ 防止被重复引用的预处理 ------*/
#ifndef __INPUTME_H__
#define __INPUTME_H__

//Ime type definition
#define IME_ENGLISH     1                   /*英数*/
#define IME_PINYIN      2                   /*拼音*/ 
#define IME_WUBI		3                   /*五笔*/ 
#define IME_BUSHOU      4                   /*部首*/ 
#define IME_BIHUA		5                   /*笔画*/ 
#define IME_NANJIAN     6                   /*难检*/ 
#define IME_SYMBOL		7                   /*符号*/
#define IME_HANDWRITE   9                   /*手写*/
#define IME_JAPANESE    8                   /*日文*/  //added by poul

/*------ 宏定义 ------*/
#define IME_NONE        					0       /*无键盘*/
#define IME_CURRENT							-1      /*当前输入法*/
#define IME_OPTION_NOSWITCH					0x01    /*当前输入法不可切换*/
#define	IME_OPTION_NOASSOC					0x02	/*不需要联想*/
#define	IME_OPTION_NOSWITCHTO_ENGLISH		0X04	//输入法切换时,不允许切换到英数
#define	IME_OPTION_NOSWITCHTO_PINYIN		0X08	//输入法切换时,不允许切换到拼音
#define	IME_OPTION_NOSWITCHTO_WUBI			0X10	//输入法切换时,不允许切换到五笔
#define	IME_OPTION_NOSWITCHTO_BUSHOU		0X20	//输入法切换时,不允许切换到部首
#define	IME_OPTION_NOSWITCHTO_BIHUA			0X40	//输入法切换时,不允许切换到笔划
#define	IME_OPTION_NOSWITCHTO_NANJIAN		0X80	//输入法切换时,不允许切换到难检
#define	IME_OPTION_NOSWITCHTO_SYMBOL		0X100	//输入法切换时,不允许切换到符号



#ifdef	__ED135
#define IM_HEIGHT		71					//输入框的高度
#else
#define IM_HEIGHT		(SYSFONTWIDTH+1)					/*输入框的高度*/
#endif
/*------ 消息定义 ------*/
#define CM_IME						CM_KNLIME_BASE
#define CM_IME_SELECTED				(CM_IME + 0)		/*当前输入法变更*/

#define IME_ACTION_SWITCH			0		/*需要切换输入法,输入法处理,AP不需关心*/
#define IME_ACTION_SETCURRENT		1		/*设置当前输入法,输入法处理,AP不需关心*/

struct tagIMEGUI_STRUCT;

/*------ 结构声明 ------*/
typedef INT   (*FPIMEHANDLEEVENT)( struct tagIMEGUI_STRUCT *pApGui,UINT *pEvent, UINT *pParam );  // 事件处理函数

// IME使用的GUI结构模板定义,用于强制把AP的GUI结构模板转为IME使用的GUI结构
typedef struct tagIMEGUI_STRUCT
{
    UINT	            uReserveMark;		/* AP或控件结构的识别标志,暂时固定为0x55AA */
    INT16  	            nX;					/* 控件占用屏幕区域的绝对坐标 */
    INT16  	            nY;
    UINT16	            uWidth;
    UINT16	            uHeight;
    FPIMEHANDLEEVENT    fpHandleFunc; 		/* AP事件处理函数入口 */
    UINT16              uCurrentIme;        /* 对应当前AP的输入法ID号 */
	UINT16				wImeOption;			//// 输入法属性
    INT                 nCtrlParam1;        /* 控件参数1(用途由具体的控件决定) */
    INT                 nCtrlParam2;        /* 控件参数2(用途由具体的控件决定) */
    INT                 nCtrlParam3;        /* 控件参数3(用途由具体的控件决定) */
} IMEGUI_STRUCT;							/* GUI控制块结构 */

typedef	struct tagMInputBox			/*从属于工程模块*/
{
//	MDC			dc;					/*输入框的dc*/
	MRect		rect;				//输入框
	UINT8		state;				/*输入框的状态*/
	UINT8		refresh;			/*需要刷新显示*/
} MInputBox;
typedef struct	tagMInputME
{    
	UINT8       *pbCaption;    		/*输入法名称*/
	UINT        uType;          	/*输入法类型*/
	UINT        uHeight;            /*输入法高度*/
	/*输入法消息处理函数*/
    //UINT32		(*fpHandleEvent)(MEvent *pEvent);
    FPIMEHANDLEEVENT    fpImeHandleFunc; // AP或控件事件处理函数入口  
} MInputME;

typedef struct	tagMIMEManager
{    
	UINT        uCount;				/*输入法种类*/
	UINT		uImeDefaultKb;		/*默认输入法*/
    UINT		(*ImeSwitchFunc)(struct tagMIMEManager *pImeManager);/*输入法切换函数*/
    VOID		(*ImeOnChangeFunc)(UINT uType);/*输入法切换回调函数*/
	MInputME	*maInputME;			/*输入法信息*/
    MInputBox	*pmImputBox;
	UINT        uImeCurrentType;    //输入法当前状态
} MIMEManager;


//UINT ImeMatchChar(UINT16);          // 获取与字符类型相匹配的输入法
void ImeShowDisable(UINT kbTypeID);
void ImeShowEnable(UINT kbTypeID);	// 使能输入法的可选标记
UINT ImeGetDefault(VOID);
BOOL ImeSetDefault(UINT kbTypeID);
void ImeSetOnlyEnglish(IMEGUI_STRUCT *pApGui, BOOL bEnable);

/*------ 函数声明 ------*/
BOOL 	ImeInitialize(VOID);
UINT32	IMeManager(IMEGUI_STRUCT *pApGui,  UINT *pEvent, UINT *pParam);
UINT	ImeGetCurrent(VOID);
BOOL	ImeSetCurrent(UINT uImeId);
BOOL 	ImeGetInfo (MInputME *pInfo);
BOOL	ImSetOnlyOne(IMEGUI_STRUCT *pApGui, UINT uImeId);
BOOL     ImeSetOptions(IMEGUI_STRUCT *pApGui,UINT16 wOptions);
MIMEManager* ImeGetSystem();

#endif  /* #ifndef __INPUTME_H__ */

⌨️ 快捷键说明

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