📄 mpopmenu.cpp
字号:
#include"include\mpopmenu.h"
#include"include\app.h"
#include"include\mlist.h"
#include"include\define.h"
#include<alloc.h>
MPopMenu::MPopMenu(MList &talist,char *idname)
: MWindowObj(talist.x()-1,talist.y()-1,talist.w()+2,talist.h()+2,idname)
{
rscreen=farmalloc(imagesize(x(),y(),x()+w()-1,y()+h()-1));
Add(talist);
Save();
UnFocus();
}
MPopMenu::~MPopMenu()
{
Restore();
if(rscreen!=(void far *)0xffff) farfree(rscreen);
}
void MPopMenu::UnFocus()
{
setfillstyle(SOLID_FILL,BLUE);
bar(x(),y(),x()+w()-1,y()+h()-1);
}
void MPopMenu::GetFocus()
{ } //usually do nothing
STATE MPopMenu::Save()
{
Mouse am;
am.MouseOff();
if(rscreen==(void far *)0xffff) return FAIL;
getimage(x(),y(),x()+w()-1,y()+h()-1,rscreen);
am.MouseOn();
return SUCC;
}
void MPopMenu::Restore()
{
Mouse am;
am.MouseOff();
putimage(x(),y(),rscreen,COPY_PUT);
am.MouseOn();
}
int MPopMenu::Process()
{
if(Mes==NOPRO) return 1;
if(Mes==DEL) return DEL;
while(1)
{
Mouse am;
int value;
int i=0;
am.Reset();
if((am.x()<x() || am.y()<y() || am.x()>(x()+w()-1)
|| am.y()>(y()+h()-1))&&am.lp()) return DEL;
value=winobj[i]->Process();
if(value==MENU) return DEL;
if(value==DEL) return DEL;
i++;i=(i==number?0:i);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -