📄 manual.txt
字号:
virtual ~MCheck(){}
virtual void GetFocus();
virtual void UnFocus();
virtual void Checked();
virtual void UnChecked();
//Checked():检查框点中时的外观,UnChecked():检查框未点中外观
//重再Checked()与UnChecked()函数可以得到外观不同的检查框
virtual int Process();
virtual int F(){ return 1;}
//检查框点中时激活此函数,函数F()一般都要重载,以便点中时执行特有的功能
virtual char far *Nameof(){return "mcheck";}
int GetChecked(){return CS;}
//得到当前检查框的状态
};
//一般地,我们可以用构件管理器函数GetObj返回某个检查框的引用,并用函数
//GetChecked()返回其状态,如:((MCheck &)GetObj("某个检查框标志")).
GetChecked()
//参见MPCheck
5. 客户类(构件管理器,专门管理文本窗口)
mclient.h
class MClient : public MObj
{
protected:
MWindow **window;
//文本窗口链
int windownum;
//窗口个数
int maxwindow;
//最大允许的窗口数,可变
int IsInAny(MWindow *p);
//窗口与其他窗口重迭吗,1:重迭,0:未重迭
void ToHead(int i);
//将位于链上该位置的窗口提到链头
public:
MClient(int x=0,int y=78,int w=getmaxx()-17,
int h=getmaxy()-136,char *idname="MCLIENT");
//x,y,w,h:客户窗口左上角坐标与长宽,idname:客户标志
virtual ~MClient();
void Add(MWindow &awin);
//向窗口链加一窗口
void Del();
//删除某个窗口
int GetWindowNum(){return windownum;}
virtual void UnFocus(){}
virtual void GetFocus(){}
virtual int Process();
virtual char far* Nameof(){ return "mclient";}
};
//客户窗口中的窗口只能在客户窗内移动,一个应用可以包括多个客户窗,每个客户窗
//可以包含多个窗口,只要内存允许,窗口个数就是无限的,一般应用格式如下:
aclient &=* new MClient()//用默认值
aclient.Add(某个窗口的引用);
aclient.Add(某个窗口的引用);
mapp.Add(aclient) //将客户窗口加到应用去
//有关更多信息,请参见MDocWin类
6. 时钟类
mclock.h
class MClock : public MObj
{
protected:
struct time oldtime; //上次扫描的时间
public:
MClock(int x,int y,char *idname);
//x,y:时钟位置,idname:标志
virtual void GetFocus();
virtual void UnFocus();
//重载GetFocus()与UnFocus()可以得到外观不同的时种
virtual int Process();
virtual char far *Nameof(){ return "mclock";}
};
//MClock类在屏幕上画一数字时钟,它不影响其他构件的运行
7. 对话框类
mdia.h
class MDialog : public MWindowObj
{
protected:
void far *rscreen;
//背景存放区指针
char *topic;
//标题文本指针
public:
MDialog(int x,int y,int w,int h,char *idname,char *top=NULL);
//x,y,w,h:窗口的坐标和长宽,idname:标志,
//top:标题条文本指针
virtual ~MDialog();
virtual void GetFocus();
virtual void UnFocus();
//重载GetFocus()与UnFocus()可以得到外观不同的对话框
virtual int Process();
virtual STATE Save();
//保存背景,对话框激活时使用
virtual void Restore();
//恢复背景,对话框撤消时使用
virtual char far *Nameof(){ return "mdialog";}
};
//对话框为一构件管理器,注意它是从MWindowObj继承而来,这一点与MClient类
//有些不同,MClient维一的是没有继承MWindowObj的构件管理类
//常见的使用方法如下:
MDialog &adia=*new MDialog(10,10,10,100,100,"D1","对话框");
adia.Add(某个构件的引用)
.....
.....
mapp.Add(adia) //再将对话框加到应用中去,当然,还可以加到其他管理中,如
//客户窗,或者另一个对话框
8. 文本窗
mdocwin.h
class MWindow : public MWindowObj
{
protected:
int bkcolor; //窗口背景
int ac; //窗口是否激活
int saveflag; //飞虹保留变量
public:
MWindow(int x,int y,int w,int h,char *topic=NULL,char *idname="MWIN");
//x,y,w,h:窗口坐标与长宽,topic:标题文本指针,idname:标志
virtual ~MWindow();
void SetPos(int x,int y);
//设置窗口的新位置,窗口移动时使用,x,y:新位置坐标
void SetAc(int act=1);
//设置窗口的激活状态,1:激活,0:睡眠
int GetAc(){return ac;}
//得到当前窗口的激活状态
void Move();
//窗口收到移动消息时调用,即鼠标按在标题条上时
void SetBkcolor(int bk){bkcolor=bk;}
//设置窗口的背景色
void Cls();
//窗口背景清除
void Redraw();
//窗口重画,包括窗口包括的构件
void SetClientId(char *idname){ClientName=idname;}
//使该窗口与某个客户窗联系起来,idname:客户窗标志,默认的标志为"MCLIENT"
void LightTopic();
//窗口激活时点亮标题条
virtual void UnFocus();
virtual void GetFocus();
//如果重载UnFocus()与GetFocus()可以得到外观不同的窗口
virtual int Process();
virtual STATE Save();
virtual void Restore();
//以上两函数执行背景的保存和恢复
virtual char far *Nameof(){return "mwindow";}
};
//可以看出,客户窗是管理管理器(窗口)的管理器,窗口是一个更小的管理器,窗口的
//使用与对话框一样,不过窗口并不独占消息,它一旦将消息处理完毕就立刻将权力
//交给下一个构件
9. 编辑框类
medit.h
class MEdit : public MObj
{
protected:
int number;
//编辑框允许的最大字符数
EDITTYPE type; //飞虹保留变量
public:
MEdit(int x,int y,int num,EDITTYPE edittype,char *defedit,char *idname);
//x,y:编辑框所在位置,num:编辑框所允许的最大字符数,edittype:为TEXT,该项
//为飞虹保留,defedit:默认的编辑文本,idname:标志
virtual ~MEdit();
char *GetEdit(){ return editbuffer;}
//得到编辑缓冲,使用时应复制缓冲的内容,不要直接使用得到的指针
virtual int Condition(int c);
//当前扫描码是否有效,默认时对所有键盘扫描码都接受,重载此函数可以对接收
//的扫描码限定,返回1表示当前扫描码有效,返回0时无效
virtual void UnFocus();
virtual void GetFocus();
//我们一般不允许你在MEdit继承类中对UnFocus()与GetFocus()重载
virtual int Process();
virtual char far *Nameof(){ return "medit";}
};
10. 图标类
micon.h
class MIcon : public MObj,public MBmp
{
public:
MIcon(int x,int y,char *filename);
//x,y:图标位置,filename:图标文件名
virtual void UnFocus();
virtual void GetFocus(){}
virtual int Process();
virtual char far *Nameof(){return "micon";}
};
//一般地,图标不接受任何消息,一旦激活,就不再对消息处理,Process函数很
//简单,它直接向管理器返回1,即把对CPU的占用权交给下一构件
//图标的画出由类MBmp负责,参见类MBmp
11. 图标按钮类
miconb.h
class MIconB : public MIcon
{
public:
MIconB(int x,int y,char *filename,char *text);
//x,y:图标按钮的位置,filename:图标位图文件名,text:图标提示文本
//默认的图标位图为长60,宽50
virtual ~MIconB(){}
virtual void UnFocus();
virtual void GetFocus();
//对以上两函数重载可以得到外观不同的图标按钮
virtual int Process();
virtual int F(){return 1;}
//当双击图标时,该函数激活,默认的函数什么也不做,如果你要该函数执行某个特定
//功能,你应该在派生类中重载该函数
virtual char *Nameof(){return "miconb";}
};
//图标按钮的画出由类MIcon负责,参见MIcon类
12. 列表类
MListIte.h
class MListItem : public MObj
{
protected:
int flag,mflag;
//以上两变量由飞虹保留
int isac;
//列表是否有效 ,1:有效,0:无效
public:
MListItem(int x,int y,int h,char *text,char *idname="NOID");
//x,y:列表位置,h:列表宽,text:列表文本,idname:标志
//列表的长度默认为列表文本长度+16,如果你要得到自己长度的列表,需在派生类
//的构造函数中用函数w(长度)重新设置
void SetColor(int m1,int m2,int m3,int m4);
//设置列表颜色,对字符列表有效,如果你的列表是图形的画,该函数无效
//m1:前景色,m2:背景色,m3:高亮度前景色(列表正接收输入,或鼠标正在列表上)
//m4:高亮度背景色,同m3
void SetAc(int ac){isac=ac;}
//设置列表是否有效,无效的列表用灰色画出
int IsAc(){return isac;}
//当前列表有效吗?
virtual ~MListItem();
virtual void UnFocus();
virtual void GetFocus();
//列表未接受输入时调用函数UnFocus(),接受输入时调用函数GetFocus()
//在派生类中重载两函数可以得到外观不同的列表
virtual int Process();
virtual int F(){ return 1;}
//列表选中时激活此函数,你应在派生类中重载
virtual char *Nameof(){return "mlistitem";}
char *GetName(){return text;}
//返回列表文本
};
//列表常用方法如下:
mylit : public MListItem
{
......
virtual int F();
}
//对F定义
int mylist::F()
{
if(!strcmp(GetId(),"列表1")) 执行列表1功能
if(!strcmp(GetId(),"列表2")) 执行列表2功能
......
......
return 1;
}
// 我们如此主要是避免了对每个列表项都派生一个类,这样我们可以用列表
//标志区分不同的列表实例
13. 主菜单列表
MListIte.h
class MBarMenuItem : public MListItem
{
public:
MBarMenuItem(int x,int y,int h,char *text,char *idname,int k=0)
:MListItem(x,y,h,text,idname){as=k;flag=0;}
//k:为1时当鼠标经过列表时就激活函数F(),为0禁止
virtual int Process();
};
//该类主要用于主菜单列表中,当某个列表有弹出菜单时,一般把k置1
14. 窗口控制键
MListIte.h
class MKey : public MBarMenuItem,public MBmp
//该类用于窗口左上角的控制中,该类已为飞虹Vision内部使用
15. 弹出菜单
MListIte.h
class MPopMenu : public MWindowObj
{
protected:
MWindowObj *M; //实质上是列表链,这里定义主要是防止用户再定义
public:
MPopMenu(int x,int y,char *idname);
MPopMenu(int x,int y,char *idname,MWindowObj &awin);
//x,y:弹出菜单位置,idname:标志
//awin: 所属管理器引用,当弹出菜单属于某个特定管理器时用此构造函数
//默认所属管理器为应用
virtual ~MPopMenu();
void Add(MListItem &alistitem);
//向弹出菜单中加入列表项
virtual void GetFocus();
virtual void UnFocus();
//此两函数禁止用户重载
virtual int Process();
virtual STATE Save();
virtual void Restore();
virtual char far *Nameof() { return "mpopmenu";}
};
//弹出菜单为一管理器,不过,组成的构件只能是列表类,弹出菜单的长是所属列表
//的最大长度,宽为所有列表宽总和,弹出菜单常与MBarMenuItem一起使用形成整个
//应用的菜单系统,具体用法请参见Demo.Cpp
16. 实用类
mok.h
class MOk : public MButton //for some dialog
{
public:
MOk(int x,int y,int w,int h):
MButton(x,y,w,h,"退出","button1","exit",0){}
virtual int F(){return DEL;}
};
//按动MOk类按钮时,向管理器发出消息DEL(define.h),常用于对话框的确认键或
//取消键
17. 图形按钮
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -