⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 editcursor.c

📁 好记星的控件,包括button,list,对文件操作
💻 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 + -