?? mainframe1.cpp
字號:
#include"jiapu.h"
#include"frame.h"
#include "else.h"
BOOL frame2(HANDLE hOut,HANDLE hIn,char*bname) //單按鈕對話框
{
INPUT_RECORD mouseRec;
DWORD res;
COORD posa1={53,11},posb={62,14},posc={79,15},posa2={60,12};
drawbox(hOut,posa1,posc);
button a[2];
a[0].createbutton(posb,"【確定】",14,236,hOut);
a[1].createbutton(posa2,bname,14,236,hOut);//"文件已保存!"
for(;;)
{
ReadConsoleInput(hIn, &mouseRec, 1,&res);
mousemove(hOut,hIn,a[0],mouseRec);
if(mouseclickl(hOut,hIn,a[0],mouseRec))
{
clearscreen(hOut,posa1,posc);
return false;
}
}
}
int frame3(HANDLE hOut,HANDLE hIn) //保存對話框
{
INPUT_RECORD mouseRec;
DWORD res;
int x;
COORD posa1={54,11},posb={56,14},posc={76,15},posa2={60,12},posa3={62,14},posa4={68,14};
drawbox(hOut,posa1,posc);
button a[4];
a[0].createbutton(posb,"【是】",14,236,hOut);
a[1].createbutton(posa2,"是否保存文件?",14,236,hOut);
a[2].createbutton(posa3,"【否】",14,236,hOut);
a[3].createbutton(posa4,"【取消】",14,236,hOut);
for(;;)
{
ReadConsoleInput(hIn, &mouseRec, 1,&res);
mousemove(hOut,hIn,a[0],mouseRec);
mousemove(hOut,hIn,a[2],mouseRec);
mousemove(hOut,hIn,a[3],mouseRec);
if(mouseclickl(hOut,hIn,a[2],mouseRec))
{
x=1;
clearscreen(hOut,posa1,posc);
return x; //單擊 "否"返回1
}
if(mouseclickl(hOut,hIn,a[0],mouseRec))
{
x=0;
clearscreen(hOut,posa1,posc);
return x; //單擊 "是"返回0
}
if(mouseclickl(hOut,hIn,a[3],mouseRec))
{
x=2;
clearscreen(hOut,posa1,posc);
return 2; //單擊 "取消"返回2
}
}
}
BOOL frame4(HANDLE hOut,HANDLE hIn) //按鈕對話框
{
INPUT_RECORD mouseRec;
DWORD res;
COORD posa1={54,11},posb={60,14},posb1={68,14},posc={78,15},posa2={57,12};
drawbox(hOut,posa1,posc);
button a[3];
a[0].createbutton(posb,"【是】",14,236,hOut);
a[1].createbutton(posa2,"文件已存在,是否覆蓋?",14,236,hOut);//
a[2].createbutton(posb1,"【否】",14,236,hOut);
for(;;)
{
ReadConsoleInput(hIn, &mouseRec, 1,&res);
mousemove(hOut,hIn,a[0],mouseRec);
mousemove(hOut,hIn,a[2],mouseRec);
if(mouseclickl(hOut,hIn,a[0],mouseRec))
{
clearscreen(hOut,posa1,posc);
return true;
}
if(mouseclickl(hOut,hIn,a[2],mouseRec))
{
clearscreen(hOut,posa1,posc);
return false;
}
}
}
button* print1(bitree t,button*pp,int n,HANDLE hOut) //打印家譜┣ ━ ┳ ┃┣ ┗
{
HANDLE hIn;
hIn = GetStdHandle(STD_INPUT_HANDLE); // 獲取標準輸入設備句柄
if(!t)
{ if(!frame2(hOut,hIn,"家譜為空!!"))
;
}
else
{
int i=0;
pp=new button[n];
HANDLE hOut;
int l,y,x;
hOut = GetStdHandle(STD_OUTPUT_HANDLE); // 獲取標準輸出設備句柄
COORD pos= {22,16}; //輸出位置
SetConsoleCursorPosition(hOut,pos); //設置光標的位置
cout<<"┣";
pos.X+=2;
SetConsoleCursorPosition(hOut,pos); //設置光標的位置
bitnode *s,*stack[200];
int top=0;
stack[top]=t;
while(top>=0)
{
s=stack[top--]; //出棧
if(!s->parent)
{;}
else
{
y=pos.Y +2;
pos=s->pos;
for(;pos.Y <y;pos.Y ++)
{
SetConsoleCursorPosition(hOut,pos);//重新設置光標的位置
cout<<"┃";
}
SetConsoleCursorPosition(hOut,pos);//重新設置光標的位置
if(s->rchild)
{
cout<<"┣";
}
else
{
cout<<"┗";
}
pos.X =pos.X +2;
SetConsoleCursorPosition(hOut,pos);//重新設置光標的位置
}
while(s)
{
pp[i].createbutton(pos,s->a.name,14,236,hOut);
pp[i].hidebutton(hOut,false);
cout<<s->a.name ;
i++;
l=strlen(s->a.name) ;
x=pos.X;
if(s->lchild)
{
cout<<"━";
if(s->lchild ->rchild )
{
cout<<"┳";
}
else
{
cout<<"━";
}
pos.X =pos.X+4+l;
SetConsoleCursorPosition(hOut,pos);//重新設置光標的位置
}
if(s->rchild)
{
stack[++top]=s->rchild ;//入棧
stack[top]->pos .X =x-2; //記錄光標的位置
stack[top]->pos.Y=pos.Y +1;
}
s=s->lchild ;
}
}
cout<<endl<<endl;
} return pp;
}
bitnode* cinnode(bitnode*p,HANDLE hOut)//輸入一個節點 用于添加節點
{
DWORD res;
HANDLE hIn;
INPUT_RECORD mouseRec;
hIn = GetStdHandle(STD_INPUT_HANDLE); // 獲取標準輸入設備句柄
COORD pos={21,16},posa={33,27},posb={52,27};
button a[10],b[2],c[2];
SetConsoleCursorPosition(hOut,pos);
a[0].createbutton(pos," 姓 名 ",14,236,hOut);
pos.X+=30;
a[1].createbutton(pos," 性 別 ",14,236,hOut);
pos.X+=12;
c[0].createbutton(pos,"男",14,236,hOut);
pos.X+=4;
c[1].createbutton(pos,"女",14,236,hOut);
pos.Y+=2;pos.X-=46;
a[2].createbutton(pos," 身 高 ",14,236,hOut);
pos.X+=20;
SetConsoleCursorPosition(hOut,pos);
cout<<"cm";
pos.X+=10;
a[3].createbutton(pos," 配 偶 ",14,236,hOut);
pos.Y+=2;pos.X-=30;
a[4].createbutton(pos," 出生時間 ",14,236,hOut);
pos.X+=30;
a[5].createbutton(pos," 死亡時間 ",14,236,hOut);
a[5].pos1.X+=25;
SetConsoleCursorPosition(hOut,a[5].pos1);
cout<<"(如1985.01.21)";
a[5].pos1.X-=25;
pos.Y+=2;pos.X-=30;
a[6].createbutton(pos," 學 歷 ",14,236,hOut);
pos.X+=30;
a[7].createbutton(pos," 職 業 ",14,236,hOut);
pos.Y+=2;pos.X-=30;
a[8].createbutton(pos," 職 稱 ",14,236,hOut);
pos.X+=30;
a[9].createbutton(pos," 出生地 ",14,236,hOut);
b[0].createbutton(posa,"【確定】",14,236,hOut);
b[1].createbutton(posb,"【取消】",14,236,hOut);
button k;
COORD posk={44,22};
k.createbutton(posk,"↓",14,236,hOut);
int i;
pos=a[0].pos1;
pos.X+=8;
SetConsoleCursorPosition(hOut,pos);
cin>>p->a.name;
for(;;)
{
ReadConsoleInput(hIn, &mouseRec, 1,&res);
for(i=0;i<10;i++)
{
mousemove(hOut,hIn,a[i],mouseRec);
}
mousemove(hOut,hIn,b[0],mouseRec);
mousemove(hOut,hIn,b[1],mouseRec);
mousemove1(hOut,hIn,c[0],mouseRec);
mousemove1(hOut,hIn,c[1],mouseRec);
mousemove1(hOut,hIn,k,mouseRec);
if(mouseclickl(hOut,hIn,c[0],mouseRec))
{
strcpy(p->a.sex,"男");
pos=a[1].pos1;
pos.X+=8;
SetConsoleCursorPosition(hOut,pos);
cout<<p->a.sex;
}
if(mouseclickl(hOut,hIn,c[1],mouseRec))
{
strcpy(p->a.sex,"女");
pos=a[1].pos1;
pos.X+=8;
SetConsoleCursorPosition(hOut,pos);
cout<<p->a.sex;
}
if(mouseclickl(hOut,hIn,a[0],mouseRec))
{
pos=a[0].pos1;
pos.X+=8;
posa=pos;
posa.X+=20;
clearscreen(hOut,pos,posa);
SetConsoleCursorPosition(hOut,pos);
cin>>p->a.name;
}
/* if(mouseclickl(hOut,hIn,a[1],mouseRec))
{
pos=a[1].pos1;
pos.X+=8;
posa=pos;
posa.X+=10;
clearscreen(hOut,pos,posa);
SetConsoleCursorPosition(hOut,pos);
cin>>p->a.sex;
}*/
if(mouseclickl(hOut,hIn,a[2],mouseRec))
{
pos=a[2].pos1;
pos.X+=8;
posa=pos;
posa.X+=11;
clearscreen(hOut,pos,posa);
SetConsoleCursorPosition(hOut,pos);
cin>>p->a.stature;
}
if(mouseclickl(hOut,hIn,a[3],mouseRec))
{
pos=a[3].pos1;
pos.X+=8;
posa=pos;
posa.X+=20;
clearscreen(hOut,pos,posa);
SetConsoleCursorPosition(hOut,pos);
cin>>p->a.consort;
}
if(mouseclickl(hOut,hIn,a[4],mouseRec))
{
pos=a[4].pos1;
pos.X+=10;
posa=pos;
posa.X+=20;
clearscreen(hOut,pos,posa);
SetConsoleCursorPosition(hOut,pos);
cin>>p->a.birthday;
}if(mouseclickl(hOut,hIn,a[5],mouseRec))
{
pos=a[5].pos1;
pos.X+=10;
posa=pos;
posa.X+=14;
clearscreen(hOut,pos,posa);
SetConsoleCursorPosition(hOut,pos);
cin>>p->a.deathday;
}if(mouseclickl(hOut,hIn,k,mouseRec))
{
pos=a[6].pos1;
pos.X+=8;
posa=pos;
posa.X+=10;
button kk[9];
COORD poskk={42,23};
kk[0].createbutton(poskk,"小學",14,10,hOut);
poskk.Y++;
kk[1].createbutton(poskk,"初中",14,10,hOut);
poskk.Y++;
kk[2].createbutton(poskk,"高中",14,10,hOut);
poskk.Y++;
kk[3].createbutton(poskk,"中專",14,10,hOut);
poskk.Y++;
kk[4].createbutton(poskk,"大專",14,10,hOut);
poskk.Y++;
kk[5].createbutton(poskk,"本科",14,10,hOut);
poskk.Y++;
kk[6].createbutton(poskk,"碩士",14,10,hOut);
poskk.Y++;
kk[7].createbutton(poskk,"博士",14,10,hOut);
poskk.Y++;
kk[8].createbutton(poskk,"其他",14,10,hOut);
for(;;)
{
BOOL tal=false;
ReadConsoleInput(hIn, &mouseRec, 1,&res);
for(int j=0;j<9;j++)
{
mousemove1(hOut,hIn,kk[j],mouseRec);
}
for(int jj=0;jj<9;jj++)
{
if(mouseclickl(hOut,hIn,kk[jj],mouseRec))
{
clearscreen(hOut,pos,posa);
SetConsoleCursorPosition(hOut,pos);
strcpy(p->a.xueli,kk[jj].buttonname);
cout<<p->a.xueli;
for(int l=0;l<9;l++)
kk[l].hidebutton(hOut,false);
tal=true;
break;
}
}
if(tal)
break;
}
}
if(mouseclickl(hOut,hIn,a[7],mouseRec))
{
pos=a[7].pos1;
pos.X+=8;
posa=pos;
posa.X+=20;
clearscreen(hOut,pos,posa);
SetConsoleCursorPosition(hOut,pos);
cin>>p->a.work;
}if(mouseclickl(hOut,hIn,a[8],mouseRec))
{
pos=a[8].pos1;
pos.X+=8;
posa=pos;
posa.X+=20;
clearscreen(hOut,pos,posa);
SetConsoleCursorPosition(hOut,pos);
cin>>p->a.zhiche;
}if(mouseclickl(hOut,hIn,a[9],mouseRec))
{
pos=a[9].pos1;
pos.X+=8;
posa=pos;
posa.X+=20;
clearscreen(hOut,pos,posa);
SetConsoleCursorPosition(hOut,pos);
cin>>p->a.birthaddress;
}
if(mouseclickl(hOut,hIn,b[1],mouseRec))
{
p=NULL;
return p;
}
if(mouseclickl(hOut,hIn,b[0],mouseRec))
{
return p;
}
}
}
bitnode* cinnode1(bitnode*p,HANDLE hOut)//輸入一個節點用于修改節點
{
DWORD res;
HANDLE hIn;
INPUT_RECORD mouseRec;
hIn = GetStdHandle(STD_INPUT_HANDLE); // 獲取標準輸入設備句柄
COORD pos={21,16},posa={33,27},posb={52,27};
button a[10],b[2],c[2];
SetConsoleCursorPosition(hOut,pos);
a[0].createbutton(pos," 姓 名 ",14,236,hOut);
pos.X+=30;
a[1].createbutton(pos," 性 別 ",14,236,hOut);
pos.X+=12;
c[0].createbutton(pos,"男",14,236,hOut);
pos.X+=4;
c[1].createbutton(pos,"女",14,236,hOut);
pos.Y+=2;pos.X-=46;
a[2].createbutton(pos," 身 高 ",14,236,hOut);
pos.X+=20;
SetConsoleCursorPosition(hOut,pos);
cout<<"cm";
pos.X+=10;
a[3].createbutton(pos," 配 偶 ",14,236,hOut);
pos.Y+=2;pos.X-=30;
a[4].createbutton(pos," 出生時間 ",14,236,hOut);
pos.X+=30;
a[5].createbutton(pos," 死亡時間 ",14,236,hOut);
a[5].pos1.X+=25;
SetConsoleCursorPosition(hOut,a[5].pos1);
cout<<"(如1985.01.21)";
a[5].pos1.X-=25;
pos.Y+=2;pos.X-=30;
a[6].createbutton(pos," 學 歷 ",14,236,hOut);
pos.X+=30;
a[7].createbutton(pos," 職 業 ",14,236,hOut);
pos.Y+=2;pos.X-=30;
a[8].createbutton(pos," 職 稱 ",14,236,hOut);
pos.X+=30;
a[9].createbutton(pos," 出生地 ",14,236,hOut);
b[0].createbutton(posa,"【確定】",14,236,hOut);
b[1].createbutton(posb,"【取消】",14,236,hOut);
int i;
button k;
COORD posk={44,22};
k.createbutton(posk,"↓",14,236,hOut);
for(;;)
{
ReadConsoleInput(hIn, &mouseRec, 1,&res);
for(i=0;i<10;i++)
{
mousemove(hOut,hIn,a[i],mouseRec);
}
mousemove(hOut,hIn,b[0],mouseRec);
mousemove(hOut,hIn,b[1],mouseRec);
mousemove1(hOut,hIn,c[0],mouseRec);
mousemove1(hOut,hIn,c[1],mouseRec);
mousemove1(hOut,hIn,k,mouseRec);
if(mouseclickl(hOut,hIn,c[0],mouseRec))
{
strcpy(p->a.sex,"男");
pos=a[1].pos1;
pos.X+=8;
SetConsoleCursorPosition(hOut,pos);
cout<<p->a.sex;
}
if(mouseclickl(hOut,hIn,c[1],mouseRec))
{
strcpy(p->a.sex,"女");
pos=a[1].pos1;
pos.X+=8;
SetConsoleCursorPosition(hOut,pos);
cout<<p->a.sex;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -