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

📄 crusor.cpp

📁 金融pos机前台源码
💻 CPP
字号:
/*******************************************************************************
	模  块:	光标模块.
	功  能:	隐藏显示移动图形光标用于指示当前位置.
	程序员:	雷中南.
	版  本:	v1.1
	时  间:	1999-05-09
*******************************************************************************/

#include <graphics.h>
#include <dos.h>
#include "crusor.h"

//定义一个光标对象.光标定义在可视范围以外.
//使用时将其调回指定位置.
Crusor Cr(-100,0);

//构造函数x,y是光标初始位置.
Crusor::Crusor(int x, int y)
{
	//光标现在状态为不显示.
	state = C_HIDE;

	X=x;
	Y=y;

	//不显示光标.
	CrusorState = IS_HIDE;
}

//析构函数
Crusor::~Crusor()
{
	//在析构前应当隐藏起来.
	Hide();

	//不显示光标.
	CrusorState = IS_HIDE;
}

//打开光标.
void
Crusor::Show()
{
	//不显示光标.
	CrusorState = IS_SHOW;

	if(state == C_HIDE)
	{
		DrawCrusor();
	}
}

//关闭光标.
void
Crusor::Hide()
{
	//如果光标是显示的,先隐藏.
	if(state == C_SHOW)
	{
		DrawCrusor();
	}

	//不显示光标.
	CrusorState = IS_HIDE;
}

//移动光标.
void
Crusor::MoveCrusor(int x, int y)
{
	if(state == C_HIDE)
	{
		//如果光标是不显示状态,直接改变坐标.
		X=x;
		Y=y;
	}
	else
	{
		//如果光标是显示状态,那么先隐藏起来,再改变坐标.
		Hide();
		X=x;
		Y=y;
	}
}

//显示/隐藏光标.
void
Crusor::DrawCrusor()
{
	if(CrusorState == IS_SHOW)
	{
		//保存正在使用的颜色.
		TempColor=getcolor();

		//设置光标为亮白色.
		setcolor(15);

		//设置画线为异或模式.
		setwritemode(1);

		//画光标.
		for(int i=0; i<=7; i++)
		{
			putpixel(X+i, Y, getpixel(X+i, Y)^0xff);
			putpixel(X+i, Y+1, getpixel(X+i, Y+1)^0xff);
		}

		//恢复原来颜色.
		setcolor(TempColor);

		//记录当前状态.
		if(state == C_HIDE)
		{
			state = C_SHOW;
		}
		else
		{
			state = C_HIDE;
		}

		//恢复拷贝模式.
		setwritemode(0);
	}
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -