国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

個簡單菜單程序

2019-11-17 05:36:39
字體:
來源:轉載
供稿:網友
今天下午下個菜單程序試試看,主要是要用鼠標控制的,現在還沒寫完,發現有一些問題值得大家討論下,也希望用c寫過鼠標控制菜單程序的朋友一起來探討下.首先是鼠標假如沒按鍵而位置在菜單選向上的時候,大家覺得這個時候應該在菜單主標題這里顯示什么樣的效果呢?是用rectangle畫一個框還是添加背景顏色呢?同樣在菜單選向里也應該顯示什么樣的效果.第二個問題是假如有滾屏的話你們覺得是把一大塊保存下來,還是一行行保存好呢?希望寫過類似程序的朋友以及想寫這個程序的朋友提點意見吧,謝謝.
/*email: milo_zy@sohu.com*/
#include "stdio.h"
#include "dos.h"
#include "stdlib.h"
#include "graphics.h"
#define WA99vING 0xff00
#define LEFTPRESS 0xff01
#define LEFTCLICK 0xff10
#define LEFTDRAG 0xff19
#define MOUSEMOVE 0xff08
int Keystate;/*這里的開始都與鼠標有關*/
int MouseExist;
int MouseButton;
int MouseX;
int MouseY;
void *save;/*儲存一塊地方用的*/
strUCt time now;/*這里開始的變量都是時間有關*/
int old,new;
char ss[10];
struct caidan/*用來檢驗是否菜單已經打開*/
{
 int on;/*菜單打開1,否則0*/
 char ml[5][20];/*子目錄*/
}c[4];
/*鼠標光標外形定義*/
typedef struct
  {
   unsigned int shape[32];
   char hotx;
   char hoty;
  }SHAPE;
/*箭頭型*/
SHAPE ARROW={
      {
       0x3fff,0x1fff,0x0fff,0x07ff,
       0x03ff,0x01ff,0x00ff,0x007f,
       0x003f,0x00ff,0x01ff,0x10ff,
       0x30ff,0xf87f,0xf87f,0xfc3f,
       0x0000,0x7c00,0x6000,0x7000,
       0x7800,0x7c00,0x7e00,0x7f00,
       0x7f80,0x7e00,0x7c00,0x4600,
       0x0600,0x0300,0x0300,0x0180
      },
      0,0,
     };
void TimeDelay(unsigned long microsec); /*延時函數 傳入微秒數*/
void MouSEOn();/*鼠標光標顯示*/
void MouseOff();/*鼠標光標掩示*/
void MouseReset();/*鼠標狀態值初始化*/
void MouseSetXY(int x,int y);/*設置鼠標當前位置*/
int LeftPress();/*獲取鼠標按下鍵的信息*/
void MouseGetXY();/*獲取鼠標當前位置*/
void prtime();/*輸出時間的函數*/
void cdbegain();/*菜單各參數初始狀態*/
void Init();/*開始畫面*/
void delcd();/*先把已有的菜單刪除了*/
void drawcdml(int n);/*輸出菜單中的具體內容*/
void drawcd(int l,int u,int r,int d,int n);/*畫菜單*/
void mouseleft();/*左鍵按下畫菜單具體內容*/
void Move();/*測試過程*/
void  main(void)
{
 Init();
 Move();
 MouseOff();
 closegraph();
}
void TimeDelay(unsigned long microsec) /*延時函數 傳入微秒數*/
{
 union REGS r;
 r.h.ah=0x86;
 r.x.cx=microsec>>16;
 r.x.dx=microsec;
 int86(0x15,&r,&r);
}
void MouseOn()/*鼠標光標顯示*/
  {
   _AX=0x01;
   geninterrupt(0x33);
  }
void MouseOff()/*鼠標光標掩示*/
  {
   _AX=0x02;
   geninterrupt(0x33);
  }
void MouseReset()/*鼠標狀態值初始化*/
  {
   _AX=0x00;
   geninterrupt(0x33);
  }
void MouseSetXY(int x,int y)/*設置鼠標當前位置*/
  {
   _CX=x;
   _DX=y;
   _AX=0x04;
   geninterrupt(0x33);
  }
int LeftPress()/*獲取鼠標按下鍵的信息*/
  {
   _AX=0x03;
   geninterrupt(0x33);
   return(_BX&1);
  }
void MouseGetXY()/*獲取鼠標當前位置*/
  {
   _AX=0x03;
   geninterrupt(0x33);
   MouseX=_CX;
   MouseY=_DX;
  }
void prtime()/*輸出時間的函數*/
{
 gettime(&now);
 new=now.ti_sec;
 if(abs(new-old)>=1)
  {
  setfillstyle(SOLID_FILL,7);/*把原來的老時間給去除*/
  bar(500,8,620,18);
  old=new;
  sprintf(ss,"%02d:%02d:%02d",now.ti_hour,now.ti_min,now.ti_sec);
  setcolor(0);
  outtextxy(500,8,ss);
  }
}
void cdbegain()/*菜單各參數初始狀態*/
{int i;
 for(i=0;i<4;i++)/*所有菜單都已經關閉*/
 c[i].on=0;
 strcpy(c[0].ml[0],"Open");/*各菜單的各選項*/
 strcpy(c[0].ml[1],"New");
 strcpy(c[0].ml[2],"Save");
 strcpy(c[0].ml[3],"Save as");
 strcpy(c[0].ml[4],"Exit");
 strcpy(c[1].ml[0],"Undo");
 strcpy(c[1].ml[1],"Cut");
 strcpy(c[1].ml[2],"Copy");
 strcpy(c[1].ml[3],"Paste");
 strcpy(c[1].ml[4],"Properties");
 strcpy(c[2].ml[0],"Styles");
 strcpy(c[2].ml[1],"L Icons");
 strcpy(c[2].ml[2],"S Icons");
 strcpy(c[2].ml[3],"/0");
 strcpy(c[2].ml[4],"/0");
 strcpy(c[3].ml[0],"Textcolor");
 strcpy(c[3].ml[1],"Backcolor");
 strcpy(c[3].ml[2],"Clearscr");
 strcpy(c[3].ml[3],"/0");
 strcpy(c[3].ml[4],"/0");
}
void Init()/*開始畫面*/
{
 int gd=DETECT,gm;
 unsigned size;
 initgraph(&gd,&gm,"c://tc");
 gettime(&now);/*獲取時間*/
 old=now.ti_sec;
 prtime();/*輸出時間*/
 setcolor(15);
 size=imagesize(40,21,140,130);
 save=malloc(size);/*開辟存儲空間*/
 setbkcolor(BLUE);/*以下是開始界面初始化*/
 rectangle(2,25,638,470);
 outtextxy(10,40,"Because of c,I make a lot of friends.");/*測試菜單不覆蓋原來的東西*/
 outtextxy(10,60,"Because of c,I'm afraid I can do ......");
 outtextxy(10,80,"Thank you for all the friends in the c classroom.");
 outtextxy(400,110,"milo_zy");
 outtextxy(390,130,"2003.9.20");
 setfillstyle(SOLID_FILL,7);
 bar(0,0,640,20);
 setcolor(RED);
 outtextxy(50,8,"File");
 outtextxy(150,8,"Edit");
 outtextxy(250,8,"Tool");
 outtextxy(350,8,"Color");
 cdbegain();/*菜單各參數初始狀態*/
 MouseOn();
}
void delcd()/*先把已有的菜單刪除了*/
{
 int i;
 for(i=0;i<4;i++)
 if(c[i].on==1)
  {
   if(i==0)/*開始恢復原來的樣子*/
    putimage(40,21,save,COPY_PUT);
   else if(i==1)
    putimage(140,21,save,COPY_PUT);
   else if(i==2)
    putimage(240,21,save,COPY_PUT);
   else
    putimage(340,21,save,COPY_PUT);
   c[i].on=0;
   break;
  }
}
void drawcdml(int n)/*輸出菜單中的具體內容*/
{
 int i,j=30,k;
 switch(n)
 {
  case 0:k=50;break;
  case 1:k=150;break;
  case 2:k=250;break;
  case 3:k=350;break;
 }
 setcolor(6);
 for(i=0;i<5;i++)
      &n


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 新昌县| 高清| 南安市| 无为县| 重庆市| 潼南县| 陇南市| 柳江县| 平江县| 镇赉县| 吉安市| 贡觉县| 阿拉善左旗| 博乐市| 巴里| 定日县| 桃园县| 新营市| 论坛| 班戈县| 十堰市| 来安县| 古田县| 长兴县| 新宾| 纳雍县| 锡林浩特市| 深水埗区| 志丹县| 柳河县| 宜章县| 吉林市| 永定县| 荥阳市| 油尖旺区| 临泽县| 花莲市| 麻城市| 大石桥市| 逊克县| 乌恰县|