📄 uikbd_engcap.c
字号:
/*********************************************************************/
// 文 件 名: uiKbd_Engcap.cpp
// 程序说明: 大写英文键盘
// 程序设计: 党德华
// 2001.10.30 设计完成 说明文档:R004-S212-0001
// 程序审查: 宋军霞
// 2002.01.22 审查完成 说明文档:R004-S212-0001
// 项目编号: R004-S212
// 版 本: V1.0
// 版 权: Reality Plus Technology (ShenZhen) Co.,Ltd.
/*********************************************************************/
#include <uiWnd.h>
#include <uiKbd_EngCap.h>
#include <uiKbd_EngCap.res>
#include <uiSound.h>
// 反显按键
#define KBD_ENGCAP_INVERT(handle,i) \
guiInvertRect(handle, KBDCOOR_ENGCAP[i].left+1,KBDCOOR_ENGCAP[i].top+1,\
KBDCOOR_ENGCAP[i].right-1,KBDCOOR_ENGCAP[i].bottom-1);
/*********************************************************************/
//dest: 大写英文键盘开始
//para: void
//return:void
/*********************************************************************/
void guiSwKbd_startEngCap( HNDL handle )
{
return;
}
/*********************************************************************/
//dest: 大写英文键盘结束
//para: void
//return:void
/*********************************************************************/
void guiSwKbd_endEngCap( HNDL handle )
{
return;
}
/*********************************************************************/
//dest: 大写英文键盘对笔点消息的响应
//para:
// handle: 键盘控件的handle值
// message:笔点消息类型
// x,y: 笔点位置座标
//return:void
/*********************************************************************/
void guiSwKbd_actionEngCap(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_ENGCAP, x, y); // 搜索位置
if(result == -1) // 不在有效范围之内
{
if(pControl->SelPos != -1)
KBD_ENGCAP_INVERT(handle,pControl->SelPos); // 恢复已按下的键
pControl->SelPos = -1;
guiExitWCS();
return;
}
code=KBDCOOR_ENGCAP[result].code;
switch(message)
{
case PENUP:
if(pControl->SelPos != -1)
{
KBD_ENGCAP_INVERT(handle,pControl->SelPos);
pControl->SelPos=-1;
}
switch(code)
{
case KEY_ENGLISH: // 切换到下一个英文键盘
guiSwKbd_SwitchToNextInType(handle);
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_CAPSLOCK: // 切换到小写键盘
guiSwKbd_SetType(handle,KBD_ENGLISH);
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_ENGCAP_INVERT(handle,pControl->SelPos); // 反显以前的笔点区域
KBD_ENGCAP_INVERT(handle,result); // 反显笔点区域
pControl->SelPos=result; // 记录笔点位置
break;
case PENREMOVE: // 触笔移出键盘
if(pControl->SelPos != -1)
{
KBD_ENGCAP_INVERT(handle,pControl->SelPos); // 取消原选中位置
pControl->SelPos = -1;
}
break;
}
guiExitWCS();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -