📄 editcursor.c
字号:
/***************************************************************************
Copyright (C) 2005 SHENZHEN MEIJIN CO.LTD
FILE NAME: EditCursor.C
MODULE NAME: Edit
DESCRIPTION: 光标相关的函数
外部函数声明:
内部函数声明:
光标隐藏
VOID __EditCursorHide(MEdit* pEdit);
光标反显
VOID __EditInvertCursor(MEdit* pEdit);
光标开始显示
void __EditShowCursor(MEdit *hEdWin);
**************************************************************************
DTAE AUTHOR VERSION REMARKS
=========== ========== ========= ======================================
2006-12-31 gaolinhui V1.0 create
***************************************************************************/
#include "kernel.h"
#include "EditIn.h"
/****************************************************************************/
/* FUNCTION: __EditInvertCursor(MEditCursor* pCur) */
/* DESCRIPTION:Invert cursor. */
/* INPUTS: pEdit -- edit control handler */
/* OUTPUTS: NONE. */
/* RETURN: NONE. */
/****************************************************************************/
/* NAME DATE REMARKS */
/* ========== ============ ==============================================*/
/* gaolinhui 2006-01-03 build. */
/****************************************************************************/
VOID __EditInvertCursor(MEdit* pEdit)
{
int x,y,Row,Col;
pEdit->pmEditInfo->m_CurSor.bCursorState = !pEdit->pmEditInfo->m_CurSor.bCursorState;
Row = pEdit->pmEditInfo->m_CurSor.wCurLine;
Col = pEdit->pmEditInfo->m_CurSor.wCurCol;
if(pEdit->pmEditInfo->wState & OF_EDITOR_MULTILINE)
Row -= pEdit->pmEditInfo->uStart; //如果是多行编辑器,要减去起始行
else
Col -= pEdit->pmEditInfo->uStart; //如果是单行编辑器,要减去起始列
x = __EditGetAsciiFontWidth(pEdit->pmEditInfo->wFontID);
y = FontGetHeight(pEdit->pmEditInfo->wFontID);
x = pEdit->uX + x * Col;
y = pEdit->uY +(y + pEdit->pmEditInfo->uRowSpace) * Row;
GraphInvertRect(x, y, x+1, y+FontGetHeight(pEdit->pmEditInfo->wFontID)-1);
}
/****************************************************************************/
/* FUNCTION: __EditCursorHide */
/* DESCRIPTION:Hide cursor and set the relatived flag. */
/* INPUTS: pEdit -- Edit control handler. */
/* OUTPUTS: NONE. */
/* RETURN: NONE. */
/****************************************************************************/
/* NAME DATE REMARKS */
/* ========== ============ ==============================================*/
/* gaolinhui 2006-12-31 build. */
/****************************************************************************/
VOID __EditCursorHide(MEdit* pEdit)
{
/*MEvent hEvent; */
if(pEdit->pmEditInfo->m_CurSor.hTimer)
{
TimerStopTimer(pEdit->pmEditInfo->m_CurSor.hTimer);
}
if (pEdit->pmEditInfo->m_CurSor.bCursorState)
{
__EditInvertCursor(pEdit);
}
pEdit->pmEditInfo->wState &= ~SF_EDITOR_CURSHOW; //设置光标未显示状态
}
/****************************************************************************/
/* FUNCTION: __EditShowCursor */
/* DESCRIPTION:显示编辑光标 */
/* INPUTS: hEdWin - 编辑框句柄 */
/* OUTPUTS: NONE */
/* RETURN: NONE */
/****************************************************************************/
/* NAME DATE REMARKS */
/* ========== ============ ==============================================*/
/* Xie 2001-04-23 创建初始版本 */
/*gaolinhui 2006-1-3 */
/****************************************************************************/
void __EditShowCursor(MEdit *hEdWin)
{
UINT16 wID;
wID = EDIT_TIMER_ID(hEdWin);
TimerResetTimer(hEdWin->pmEditInfo->m_CurSor.hTimer, wID, EDIT_CURTMR_SET);
hEdWin->pmEditInfo->wState |= SF_EDITOR_CURSHOW; //设置光标显示状态
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -