📄 object.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 + -