如何用C的easyX图形库制作图形化界面菜单(财务管理系统)
生活随笔
收集整理的這篇文章主要介紹了
如何用C的easyX图形库制作图形化界面菜单(财务管理系统)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這是財務管理系統的一個圖形化界面主菜單 ;
下面這個是查詢功能的一個子菜單;
一:
菜單的實現靠的是easyX,它是針對C++的一個圖形庫,編譯器用的是Visual C。其實VC和easyX圖形庫就很容易上手制作一個鼠標點擊的類圖形化界面。
二:
下面是代碼:
// 僅僅是展示 菜單的代碼 一些功能性函數就清空了 #include <stdio.h> #include <graphics.h> // 因為防止報錯 void addOut(){}; void changeOut(){}; void delOut(){};void addIn(){}; void changeIn(){}; void delIn(){}; void showIn(){};void showRest(){}; void cleanOut(){}; void cleanIn(){}; // 下面是主菜單的第三個查詢功能后的子菜單代碼 void showOut(){abcd :; //這里使用了 goto : 是為了每次執行了功能后返回到第一步重新打印子菜單 也可以用更好的邏輯實現循環 而不用goto函數MOUSEMSG m;//定義鼠標變量 m//菜單initgraph(800,600); //定義畫布大小也就是黑框大小setbkcolor(WHITE);//設置背景顏色cleardevice();//刷新一次 略等于那個system(cls)setfillcolor(LIGHTBLUE); //設置后面用函數畫出方框的背景顏色 這里設置成了淺藍色// (左上角)x1 y1 (右下角)x2 y2fillrectangle(200,140,600,160);fillrectangle(200,200,600,220);fillrectangle(200,260,600,280);fillrectangle(200,320,600,340);fillrectangle(200,380,600,400);fillrectangle(200,440,600,460);settextstyle(15,0,"楷體");//設置文字大小 格式 setbkmode(TRANSPARENT);// 去掉文字背景//下面是輸出字體 參數:(起始位置x 起始位置y “帶輸出的字符串”)outtextxy(250,142,"查詢某一年的總支出");outtextxy(250,202,"查詢某年某月的總支出");outtextxy(250,262,"查詢某年某月某日的支出");outtextxy(250,322,"根據關鍵字查詢支出情況");outtextxy(250,382,"列出所有支出情況");outtextxy(250,442,"返回主菜單"); //進入觸發條件的循環while(1){////m = GetMouseMsg();if(m.x>=200 && m.x<= 600 && m.y >=140&& m.y<=160){//檢測鼠標的位置 是否滿足條件setlinecolor(RED);//滿足后 設置新的邊框為紅色rectangle(190,135,610,165);//畫新的邊框//如果點擊了 年份if(m.uMsg==WM_LBUTTONDOWN){//yearOut();//響應功能goto abcd;//功能實現后 跳轉到 最開頭}}else if(m.x>=200 && m.x<= 600 && m.y >=200&& m.y<=220){setlinecolor(RED);rectangle(190,195,610,225);//如果點擊了月if(m.uMsg==WM_LBUTTONDOWN){// monthOut();goto abcd;}}else if(m.x>=200 && m.x<= 600 && m.y >=260&& m.y<=280){setlinecolor(RED);rectangle(190,255,610,285);//點擊了日if(m.uMsg==WM_LBUTTONDOWN){// dayOut();goto abcd;}}else if(m.x>=200 && m.x<= 600 && m.y >=320&& m.y<=340){setlinecolor(RED);rectangle(190,315,610,345);//點擊了關鍵字if(m.uMsg==WM_LBUTTONDOWN){// memOut();goto abcd;}}//else if(m.x>=200 && m.x<= 600 && m.y >=380&& m.y<=400){//setlinecolor(RED);rectangle(190,375,610,405);//點擊了列出所有if(m.uMsg==WM_LBUTTONDOWN){// show();goto abcd;}}else if(m.x>=200 && m.x<= 600 && m.y >=440&& m.y<=460){//setlinecolor(RED);rectangle(190,435,610,465);//點擊了返回if(m.uMsg==WM_LBUTTONDOWN){goto abcde;}}//一旦鼠標不在相應位置 將畫出白色邊框 覆蓋之前的紅色邊框else {setlinecolor(WHITE);rectangle(190,135,610,165);rectangle(190,195,610,225);rectangle(190,255,610,285);rectangle(190,315,610,345);rectangle(190,375,610,405);rectangle(190,435,610,465);}}abcde:;//點擊退出按鈕 就跳轉到這里退出子菜單 返回主菜單 }//下面是主菜單的實現 實現的細節和子菜單的類似 void drawMenu(){abcd :;MOUSEMSG m;//菜單initgraph(800,600);setbkcolor(WHITE);cleardevice();//刷新一次 略等于那個system(cls)setfillcolor(LIGHTBLUE);// 左邊1 高1 左邊2 高2fillrectangle(300,10,500,30);fillrectangle(300,50,500,70);fillrectangle(300,90,500,110);fillrectangle(300,130,500,150);fillrectangle(300,200,500,220);fillrectangle(300,240,500,260);fillrectangle(300,280,500,300);fillrectangle(300,320,500,340);fillrectangle(300,390,500,410);fillrectangle(300,430,500,450);fillrectangle(300,470,500,490); settextstyle(15,0,"楷體");//設置文字格式setbkmode(TRANSPARENT);// 去掉文字背景outtextxy(370,15,"添加支出");outtextxy(370,55,"刪除支出");outtextxy(370,95,"查詢支出");outtextxy(370,135,"修改支出");outtextxy(370,205,"添加收入");outtextxy(370,245,"刪除收入");outtextxy(370,280,"查詢收入");outtextxy(370,320,"修改收入");outtextxy(380,395,"結算");outtextxy(355,433,"清空支出信息");outtextxy(355,472,"清空收入信息");settextcolor(BLACK);settextstyle(45,0,"楷體");outtextxy(120,530,"家庭財務管理系統V1.0(三組)");while(1){////m = GetMouseMsg();if(m.x>=300 && m.x<= 500 && m.y >=10&& m.y<=30){setlinecolor(RED);rectangle(295,5,505,35);//如果點擊了添加if(m.uMsg==WM_LBUTTONDOWN){addOut();goto abcd;}}else if(m.x>=300 && m.x<= 500 && m.y >=50&& m.y<=70){setlinecolor(RED);rectangle(295,45,505,75);//如果點擊了刪除if(m.uMsg==WM_LBUTTONDOWN){delOut();goto abcd;}}else if(m.x>=300 && m.x<= 500 && m.y >=90&& m.y<=110){setlinecolor(RED);rectangle(295,85,505,115);//點擊了查詢if(m.uMsg==WM_LBUTTONDOWN){showOut();goto abcd;}}else if(m.x>=300 && m.x<= 500 && m.y >=130&& m.y<=150){setlinecolor(RED);rectangle(295,125,505,155);//點擊了修改if(m.uMsg==WM_LBUTTONDOWN){changeOut();goto abcd;}}//else if(m.x>=300 && m.x<= 500 && m.y >=200&& m.y<=220){//setlinecolor(RED);rectangle(295,195,505,225);//點擊了添加Inif(m.uMsg==WM_LBUTTONDOWN){addIn();goto abcd;}}else if(m.x>=300 && m.x<= 500 && m.y >=240&& m.y<=260){//setlinecolor(RED);rectangle(295,235,505,265);//點擊了刪除Inif(m.uMsg==WM_LBUTTONDOWN){delIn();goto abcd;}}else if(m.x>=300 && m.x<= 500 && m.y >=280&& m.y<=300){setlinecolor(RED);rectangle(295,275,505,305);//點擊了查詢Inif(m.uMsg==WM_LBUTTONDOWN){showIn();goto abcd;}}else if(m.x>=300 && m.x<= 500 && m.y >=320&& m.y<=340){setlinecolor(RED);rectangle(295,315,505,345);//點擊了修改Inif(m.uMsg==WM_LBUTTONDOWN){changeIn();goto abcd;}}else if(m.x>=300 && m.x<= 500 && m.y >=390&& m.y<=410){setlinecolor(RED);rectangle(295,385,505,415);//點擊了結算if(m.uMsg==WM_LBUTTONDOWN){showRest();goto abcd;}}else if(m.x>=300 && m.x<= 500 && m.y >=430&& m.y<=450){setlinecolor(RED);rectangle(295,425,505,455);//點擊了清空Outif(m.uMsg==WM_LBUTTONDOWN){cleanOut();goto abcd;}}else if(m.x>=300 && m.x<= 500 && m.y >=470&& m.y<=490){setlinecolor(RED);rectangle(295,465,505,495);//點擊了清空Inif(m.uMsg==WM_LBUTTONDOWN){cleanIn();goto abcd;}}else {setlinecolor(WHITE);rectangle(295,5,505,35);rectangle(295,45,505,75);rectangle(295,85,505,115);rectangle(295,125,505,155);rectangle(295,235,505,265);rectangle(295,275,505,305);rectangle(295,315,505,345);rectangle(295,195,505,225);rectangle(295,385,505,415);rectangle(295,425,505,455);rectangle(295,465,505,495);}}getchar();closegraph(); } 這里是主函數! 僅僅調用了主菜單的函數。 int main(){drawMenu(); }總結
以上是生活随笔為你收集整理的如何用C的easyX图形库制作图形化界面菜单(财务管理系统)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 搅局电子书,盛大通吃“化友为敌”
- 下一篇: flutter 真机无法调试 sdk报错