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

📄 object.cpp

📁 C++写的POS前台程序
💻 CPP
字号:
/*******************************************************************************
	模  块:	图形对象模块.
	功  能:	能够定义一个图形方块为对象并显示和隐藏,是所有图形对象的基类.
	程序员:	雷中南.
	版  本:	v1.1
	时  间:	1999-05-05
*******************************************************************************/

#include <graphics.h>
#include "han.h"
#include "object.h"

//构造函数,派生自 ScrKeep 类.
Object::Object(struct RECT R) : ScrKeep(R)
{
	//对象的位置.
	Rect = R;
	//背景颜色.
	BackColor = 0;
	//边框颜色.
	FrameColor = 7;
	//默认控件为可显示的.
	Visible = L_OK;
	//在显示之前,先将现场保存起来.
	ScrKeep::Save();
	//注意,虽然对象产生了却未显示,这是有必要的.
//	clearviewport();
}

//析构函数,在对象被删除之前先隐藏起来.
Object::~Object()
{
	Hide();
}

//隐藏对象,其实就是将保存的背景恢复出来.
void
Object::Hide()
{
	//如果object不具备可见属性则返回.
	if(Visible==L_ERROR) return;
	ScrKeep::Restore();
}

//将对象画出来.
void
Object::Show()
{
	//如果object不具备可见属性则返回.
	if(Visible==L_ERROR) return;
	//视口变化太多了,重定义视口是有必要.
	setviewport(0,0,639,479,1);
	setviewport(Rect.Left,Rect.Top,Rect.Left+Rect.Width,Rect.Top+Rect.Height,1);
	//清除视口.
	clearviewport();
	//画对象.
	Draw();
}

//画对象.
void
Object::Draw()
{
	//用背景色添满对象所在位置.
	setfillstyle(SOLID_FILL, BackColor);
	bar(0,0,Rect.Width,Rect.Height);
	//画边框.
	setcolor(FrameColor);
	rectangle(0,0,Rect.Width,Rect.Height);
}

//在对象中输出文本。
void
Object::OutText(int X, int Y, char *Text)
{
	if(Visible==L_ERROR) return;
	setviewport(0,0,639,479,1);
	setviewport(Rect.Left,Rect.Top,Rect.Left+Rect.Width,Rect.Top+Rect.Height,1);
	han.Color = Color;
	han.Out(X, Y, Text);
}

//把自己从内存中删掉.
void
Object::Close()
{
	delete this;
}

//背景颜色.
void
Object::SetBkColor(int color)
{
	BackColor = color;
}

//设置前景颜色.
void
Object::SetColor(int color)
{
	Color = color;
}

//设置边框颜色.
void
Object::SetFrameColor(int color)
{
	FrameColor = color;
}

//运行对象.
void
Object::Run()
{
	DoIt();
}

//运行代码段.
void
Object::DoIt()
{
}

⌨️ 快捷键说明

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