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