📄 uikbd_num.c
字号:
/*********************************************************************/
// 文 件 名: uiKbd_Num.cpp
// 程序说明: 数字键盘
// 程序设计: 宋军霞
// 2002.04.11 设计完成 说明文档:R004-S248-0001
// 程序审查: 宋军霞
// 2002.01.22 审查完成 说明文档:R004-S248-0001
// 项目编号: R004-S248
// 版 本: V1.0
// 版 权: Reality Plus Technology (ShenZhen) Co.,Ltd.
/*********************************************************************/
#include <uiWnd.h>
#include <uiKbd_Num.h>
#include <uiKbd_Num.res>
#include <uiSound.h>
// 反显按键
void KBD_NUM_INVERT(HNDL handle,int i)
{
if(i<11)
guiInvertRect(handle, KBDCOOR_NUM[i].left+1,
KBDCOOR_NUM[i].top+1,KBDCOOR_NUM[i].right-1,KBDCOOR_NUM[i].bottom-1);
else
{
guiInvertRect(handle, KBDCOOR_NUM[i].left+1,
KBDCOOR_NUM[i].top+3,KBDCOOR_NUM[i].right-1,KBDCOOR_NUM[i].bottom-3);
guiInvertRect(handle, KBDCOOR_NUM[i].left+2,
KBDCOOR_NUM[i].top+2,KBDCOOR_NUM[i].right-2,KBDCOOR_NUM[i].top+2);
guiInvertRect(handle, KBDCOOR_NUM[i].left+3,
KBDCOOR_NUM[i].top+1,KBDCOOR_NUM[i].right-3,KBDCOOR_NUM[i].top+1);
guiInvertRect(handle, KBDCOOR_NUM[i].left+2,
KBDCOOR_NUM[i].bottom-2,KBDCOOR_NUM[i].right-2,KBDCOOR_NUM[i].bottom-2);
guiInvertRect(handle, KBDCOOR_NUM[i].left+3,
KBDCOOR_NUM[i].bottom-1,KBDCOOR_NUM[i].right-3,KBDCOOR_NUM[i].bottom-1);
}
}
/*********************************************************************/
//dest: 数字键盘开始
//para: void
//return:void
/*********************************************************************/
void guiSwKbd_startNum( HNDL handle )
{
return;
}
/*********************************************************************/
//dest: 数字键盘结束
//para: void
//return:void
/*********************************************************************/
void guiSwKbd_endNum( HNDL handle )
{
return;
}
/*********************************************************************/
//dest: 数字键盘对笔点消息的响应
//para:
// handle: 键盘控件的handle值
// message:笔点消息类型
// x,y: 笔点位置座标
//return:void
/*********************************************************************/
void guiSwKbd_actionNum(HNDL handle, WORD message, WORD x, WORD y)
{
BYTE bClass;
WORD code;
int result;
TGuiSw_Kbd *pControl;
short langType;
langType = guiQueryLanguageType();
guiEnterWCS();
pControl=(TGuiSw_Kbd *)handle;
//转换成相对于控件的坐标
x -= pControl->base.left;
y -= pControl->base.top;
result=guiSwKbd_SearchPos(KBDCOOR_NUM, x, y); // 搜索位置
if(result == -1) // 不在有效范围之内
{
if(pControl->SelPos != -1)
KBD_NUM_INVERT(handle,pControl->SelPos); // 恢复已按下的键
pControl->SelPos = -1;
guiExitWCS();
return;
}
code=KBDCOOR_NUM[result].code;
switch(message)
{
case PENUP:
if(pControl->SelPos != -1 )
{
KBD_NUM_INVERT(handle,pControl->SelPos);
pControl->SelPos=-1;
}
switch(code)
{
case KEY_ENGLISH: // 切换到英文键盘
guiSwKbd_SwitchClass(handle,KBDCLASS_ENGLISH);
break;
case KEY_CHINESE: // 切换到中文键盘
//guiSwKbd_SwitchClass(handle,KBDCLASS_CHINESE);
if(langType==LANGUAGE_CHT)
guiSwKbd_SwitchClass(handle,KBDCLASS_CHT);
else
guiSwKbd_SwitchClass(handle,KBDCLASS_CHINESE);
break;
case KEY_SYMBOL: // 切换到符号键盘
guiSwKbd_SwitchClass(handle,KBDCLASS_SYMBOL);
break;
case KEY_HAND: // 切换到手写键盘
guiSwKbd_SwitchClass(handle,KBDCLASS_HAND);
break;
case KEY_NUMERIC: // 切换到下一个数字键盘
guiSwKbd_SwitchToNextInType(handle);
break;
/*case KEY_MAKEWORD: // 切换到造字键盘
guiSwKbd_SwitchClass(handle,KBDCLASS_MAKEWORD);
break;
*/
case KEY_CAPSLOCK:
break;
default:
guiKbd_SendMsg(handle,code,INPUT_MODE_ADD); // 输入一个按键
break;
}
guiPenSound();
break;
case PENMOVE: // 在键盘中移动触笔
if( pControl->SelPos == result)
break;
case PENREENTER: // 触笔移入键盘
case PENDOWN:
if(pControl->SelPos != -1)
KBD_NUM_INVERT(handle,pControl->SelPos);// 取消前一笔点区域
KBD_NUM_INVERT(handle,result); // 反显笔点区域
pControl->SelPos=result; // 记录笔点位置
break;
case PENREMOVE: // 触笔移出键盘
if(pControl->SelPos != -1)
{
KBD_NUM_INVERT(handle,pControl->SelPos); // 取消原选中位置
pControl->SelPos = -1;
}
break;
}
guiExitWCS();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -