#ifndef MYWIN_INPUT_H__ #define MYWIN_INPUT_H__ //定义最大输入字符数 #define INPUT_WORDS_MAXNUM 256 //定义输入法状态 #define INPUT_MODE_PINYIN 0 #define INPUT_MODE_BIG 1 #define INPUT_MODE_MINI 2 #define INPUT_MODE_NUM 3 #define INPUT_MODE_SYMBOL 4 typedef struct { int x; int y; int x_size; int y_size; int press; char txt[10]; }INPUT_ButtonStruct; typedef struct { WIN_WindowStruct win; int pinyin_y; //拼音的显示坐标 int button_ysize; //按键Y轴方向的尺寸 int exit; //把此项设为1,输入法返回 int press_x; //屏幕按下时的坐标 int press_y; int press_down_index; //处于按下状态的键值索引 int press_down_index_word; //处于按下状态的候选字索引 int word_page; //候选字翻页 int num_symbol_page; //数字字符翻页 u8 *word_const; //候选字待选数组 int inputMode; //输入法状态,0,拼音,1,大写,2,小写,3,数字,4,符号 char inputPinyin[10]; //输入的拼音 char candidateWord[3]; //候选字; INPUT_ButtonStruct word[10];//候选字按键 char inputWords[INPUT_WORDS_MAXNUM]; //输入的字符 INPUT_ButtonStruct button[37]; }WIN_InputStruct; //在堆中创建一个输入法 WIN_InputStruct *WIN_CreatInput (WIN_WindowStruct *base, void (*msgLoop)(struct _WIN_WindowStruct *win,WIN_MsgStruct *msg), int x,int y,int x_size,int y_size); //键盘切换至字母大写 void INPUT_SetToAscBig (WIN_InputStruct *input); //键盘切换至字母小写 void INPUT_SetToAscMini (WIN_InputStruct *input); //键盘切换至数字 void INPUT_SetToNum (WIN_InputStruct *input); //按键按下 void INPUT_SetPressDown (WIN_InputStruct *input); //按键抬起 void INPUT_SetPressUp (WIN_InputStruct *input); //添加拼音 void INPUT_PinYinAppend (WIN_InputStruct *input); //拼音截短 void INPUT_PinYinCut (WIN_InputStruct *input); //输入字符截短 void INPUT_WordCut (WIN_InputStruct *input); //追加输入字符 void INPUT_WordAppend (WIN_InputStruct *input); //查询候选字符 void INPUT_FindWord (WIN_InputStruct *input); //默认绘制函数 void INPUT_DefaultPaint (WIN_InputStruct *input); //默认消息处理函数 void INPUT_DefaultMsgLoop (WIN_InputStruct *input,WIN_MsgStruct *msg); //使用键盘输入一些数据 int INPUT_KeyBoard (WIN_WindowStruct *win,char *txt,int len); #endif