亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lwin.cpp

?? ldraw_DOS游戲開發包
?? CPP
字號:
#include <lwin.h>
#include <dos.h>
#include <string.h>
/* Extern Datas */
void WinHandleEventSource(int Event) { Event=Event; }
void (*WinHandleEvent)(int Event)=WinHandleEventSource;
TBUTTON *WinButtons;
TWin    *WinWindows;
int WinEvent;
/* static mumber */
static char WinInitFlag=FALSE;
static TGDC dc;
static void dc_s() { lSaveDC(&dc); lActiveDC(0); }
static void dc_r() { lActiveDC(&dc); }

/* The Inter Face of The Win Function */
static char Ifin(TBUTTON *b,short x,short y);
void   WinRun();
void   WinMainProc(int exit_code);
int    Win_Button_Process();

/***********************************************************************/
char WinInit()
{ short i,j;
  if (WinInitFlag==TRUE) return FALSE;
  WinInitFlag=TRUE;
  WinButtons=new TBUTTON[MAX_BUTTON];
  WinWindows=new TWin[MAX_WINDOW];
  for (i=0;i<MAX_BUTTON;i++) WinButtons[i].mode=BMODE_NULL;
  for (i=0;i<MAX_WINDOW;i++) WinWindows[i].mode=WMODE_NULL;
  lmInit(); lmCloseTimer(); mouse_event=0; lmOpen();
  lwInitColor();
  return TRUE;
}
static char Ifin(TBUTTON *b,short x,short y)
{ if (x>=b->x1&&y>=b->y1&&x<=b->x2&&y<=b->y2) return 1;
    else return 0;
}
void Win_child_DrawB(TBUTTON *b,char mode)
{ lmClose();
  dc_s();
  lwDrawButton(b->x1,b->y1,b->x2,b->y2, b->name, b->bitmap, mode);
  dc_r();
  lmOpen();
}
void Win_child_DrawW(TWin *w)
{ int x1=w->x1, x2=w->x2, y1=w->y1, y2=w->y2, size=(x2-x1+1)*(y2-y1+1)+4, index;
  w->savebitmap=new char[size];
  dc_s();
  lgetBlock(x1,y1,x2,y2,w->savebitmap);
  lwCreateWin(w);
  dc_r();
}
void Win_child_Clear(TWin *w)
{ int x=w->x1 , y=w->y1;
  dc_s();
  lputBlock(x,y,w->savebitmap);
  delete w->savebitmap;
  dc_r();
}
void Win_child_ForbidAll(int forbid)
{ int i;
  for (i=0;i<MAX_BUTTON;i++) WinButtons[i].forbid|=forbid;
  for (i=0;i<MAX_WINDOW;i++) WinWindows[i].forbid|=forbid;
}
void Win_child_UnForbidAll(int forbid)
{ int i;
  for (i=0;i<MAX_BUTTON;i++) WinButtons[i].forbid&=(0xffff^forbid);
  for (i=0;i<MAX_WINDOW;i++) WinWindows[i].forbid&=(0xffff^forbid);
}
///////////////////////////////////////////////////////////////////
extern short lw_b1x1, lw_b1y1, lw_b1x2, lw_b1y2, lw_b2x1, lw_b2y1, lw_b2x2, lw_b2y2;
void Win_SendEvent(int index,int event)
{ int r;
  if (WinWindows[index].mode==WMODE_NULL) return;
  dc_s(); 
  lActiveDC(&WinWindows[index].wdc);
  if (WinWindows[index].proc) r=(*WinWindows[index].proc)(event,index);
     else r=cmNORMAL;
  dc_r();
  switch (r)
   { case cmDESTORY: WinDelWindow(&WinWindows[index]); break;
   }
}
int  Win_Button_Process()
{ int i,j,event=cmNORMAL,x,y;
  if (mouse_event==1&&mouse_code==MBUTTON_L)
   { x=mouse_x; y=mouse_y;
     for (i=0;i<MAX_BUTTON;i++)
       if (WinButtons[i].mode==BMODE_WORK && WinButtons[i].forbid==0 &&
           Ifin(&WinButtons[i],x,y)==1) 
        { Win_child_DrawB(&WinButtons[i],1); lmDraw();
          delay(CLICK_DELAY);
          Win_child_DrawB(&WinButtons[i],0); 
          event=WinButtons[i].command;
          if (WinButtons[i].belong_win==NUL_BELONG) WinEvent=event;
            else Win_SendEvent(WinButtons[i].belong_win,event);
        }
     mouse_event=0;
   }
  return event;
}
int  Win_Window_Process()
{ int i,f;
  for (i=0;i<MAX_WINDOW;i++)
   {
    if (WinWindows[i].mode!=WMODE_NULL)
      { f=WinWindows[i].forbid&WinWindows[i].fmask;
        if (f==0&&WinWindows[i].type==WTYPE_INITIACT)
          Win_SendEvent(i,cmNORMAL_CALL);
      } 
   }
  return 0;
}
int  WinCreateButton(TBUTTON *b)
{ int i=0;
  while (WinButtons[i].mode!=BMODE_NULL&&i<MAX_BUTTON) i++;
  if (i>=MAX_BUTTON) i=MAX_BUTTON-1;
  b->index=i; b->mode=BMODE_WORK; b->forbid=0;
  memcpy(&WinButtons[i],b,sizeof(*b));
  Win_child_DrawB(b,0);
  return i;
}
int  WinCreateWindow(TWin *w)
{ int i=0, b1, b2;
  TBUTTON b;
  while (WinWindows[i].mode!=WMODE_NULL&&i<MAX_WINDOW) i++;
  if (i>=MAX_WINDOW) i=MAX_WINDOW - 1;
  w->index=i; w->mode=WMODE_WORK; w->forbid=0;
  memcpy(&WinWindows[i],w,sizeof(*w));
  Win_child_DrawW(w);
  switch (w->type)
   { case WTYPE_PASSIVE:  w->fmask=0xffff; w->style=0; break;
     case WTYPE_INITIACT: w->fmask=WFORBID_HIGH; w->style=0; break;
   }
  b.x1=lw_b1x1, b.y1=lw_b1y1, b.x2=lw_b1x2, b.y2=lw_b1y2;
  b.name="x"; b.bitmap=NULL; b.command=cmEXIT; b.belong_win=i;
  WinCreateButton(&b); 
  w->b1=b.index;
  b.x1=lw_b2x1, b.y1=lw_b2y1, b.x2=lw_b2x2, b.y2=lw_b2y2;
  b.name="+"; b.bitmap=NULL; b.command=cmTMENU; b.belong_win=i;
  WinCreateButton(&b); w->b2=b.index;
  memcpy(&WinWindows[i],w,sizeof(*w));
  Win_SendEvent(i,cmSTART);
  return i;
}
void WinDelWindow(TWin *w)
{ int i=w->index,b1,b2;
  if (i>=MAX_WINDOW) return;
  if (WinWindows[i].mode==WMODE_NULL) return;
  Win_child_Clear(w);
  WinWindows[i].mode=WMODE_NULL;
  b1=w->b1, b2=w->b2; WinButtons[b1].mode=BMODE_NULL; WinButtons[b2].mode=BMODE_NULL;
}
void WinDelButton(TBUTTON *b)
{ int i=b->index;
  if (i>=MAX_BUTTON) return;
  WinButtons[i].mode=BMODE_NULL; 
}
void WinClearButton()
{ int i;
  for (i=0;i<MAX_BUTTON;i++) WinButtons[i].mode=BMODE_NULL;
}
/**************************************************************************/
void WinRun()
{ WinInit();
  WinMainProc(cmEXIT);
  WinInitFlag=FALSE;
  delete WinButtons, WinWindows;
}
////////////////////////////////////////////////////////////////
void WinMainProc(int exit_code)
{ char mouse_timer=lmIfTimer();
  lmClose(); lmCloseTimer(); lmOpen();
  WinEvent=cmNORMAL;
  while (WinEvent!=exit_code)
   { WinEvent=cmNORMAL;
     lmDraw();
     Win_Button_Process();
     Win_Window_Process(); 
     if (WinHandleEvent) (*WinHandleEvent)(WinEvent);
   }
  if (mouse_timer) lmInitTimer();
}
///////////////////////////////////////////////////////////////
static int MessageBoxHandle(int event,int index)
{ static TBUTTON b;
  TWin *w=&WinWindows[index];
  int r=cmNORMAL;
  switch (event)
   { case cmSTART: b.x1=w->x1+(w->x2-w->x1-32)/2; b.x2=b.x1+32; 
                   b.y2=w->y2-10;
                   b.y1=b.y2-19; b.name="OK"; b.bitmap=0; b.command=cmOK;
                   b.belong_win=index; WinCreateButton(&b); 
                   break;
     case cmOK:    r=cmDESTORY; WinEvent=cmEXIT; WinDelButton(&b); 
                   break;
   }
  return r;
}
void WinMessageBox(char *title,char *string)
{ int slen=GModeData.LEN,swid=GModeData.WID, wordlen=strlen(string)*8, 
      wordlen2=strlen(title)*8, len, i;
  TWin w;
  if (wordlen>wordlen2) len=wordlen+30;
    else len=wordlen2+60;
  w.title=title;
  w.x1=(slen-len)/2; w.x2=w.x1+len-1; w.y1=(swid*3/4-swid/5)/2;
  w.y2=w.y1+swid/5; w.type=WTYPE_INITIACT; w.proc=MessageBoxHandle;
  Win_child_ForbidAll(WFORBID_HIGH);
  i=WinCreateWindow(&w); 
  lActiveDC(&w.wdc); louttextxy((len-wordlen)/2,15,string); 
  lActiveDC(0); 
  WinEvent=cmNORMAL;
  WinMainProc(cmEXIT);
  WinDelWindow(&w);
  Win_child_UnForbidAll(WFORBID_HIGH);
  WinEvent=cmNORMAL;
}
void WinMessageBox(short x1,short y1,short x2,short y2,char *title,char *string)
{ int wordlen=strlen(string)*8, 
      wordlen2=strlen(title)*8, len, i;
  TWin w;
  if (wordlen>wordlen2) len=wordlen+30;
    else len=wordlen2+60;
  w.title=title;
  w.x1=x1; w.x2=x2; w.y1=y1;
  w.y2=y2; w.type=WTYPE_INITIACT; w.proc=MessageBoxHandle;
  Win_child_ForbidAll(WFORBID_HIGH);
  i=WinCreateWindow(&w); 
  lActiveDC(&w.wdc); louttextxy(0,15,string); 
  lActiveDC(0); 
  WinEvent=cmNORMAL;
  WinMainProc(cmEXIT);
  WinDelWindow(&w);
  Win_child_UnForbidAll(WFORBID_HIGH);
  WinEvent=cmNORMAL;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久久四虎| 成人激情免费电影网址| 国产清纯在线一区二区www| 欧美一区二区三区不卡| 欧美一a一片一级一片| 色就色 综合激情| 欧美午夜在线一二页| 色婷婷一区二区| 91首页免费视频| 色偷偷一区二区三区| 99精品欧美一区二区三区小说 | 欧美激情一区二区| 欧美久久久久久久久| www.亚洲人| 国产一区二区三区最好精华液| 无吗不卡中文字幕| 中文成人av在线| 亚洲一区在线观看网站| 亚洲123区在线观看| 天天色图综合网| 国产伦精品一区二区三区免费| av综合在线播放| 亚洲 欧美综合在线网络| 国产在线一区二区综合免费视频| 成人综合日日夜夜| 亚洲天堂久久久久久久| 欧美亚洲国产一区二区三区| 亚洲国产aⅴ成人精品无吗| 欧美电影免费提供在线观看| 国产一区二区精品久久99| 国产三区在线成人av| 日本韩国欧美在线| 日韩**一区毛片| 国产精品久久久爽爽爽麻豆色哟哟| 在线国产电影不卡| 国产一区日韩二区欧美三区| 亚洲日本青草视频在线怡红院| 9191国产精品| 91同城在线观看| 国产一区二区三区免费看| 亚洲蜜桃精久久久久久久| www.99精品| 久久精品亚洲精品国产欧美| 日韩久久一区二区| 国产东北露脸精品视频| 欧美一区二区三区日韩视频| 激情图片小说一区| 国产精品免费av| 91蜜桃视频在线| 91精品蜜臀在线一区尤物| 精品国产成人在线影院 | 日韩精品一区二区三区在线| 99国产一区二区三精品乱码| 欧美国产成人精品| 色婷婷av一区二区三区之一色屋| 美国十次综合导航| 亚洲自拍偷拍网站| 欧美激情一二三区| 精品国产一区二区三区忘忧草| 91久久一区二区| av午夜一区麻豆| 日韩美女视频一区二区 | 国产一区二区0| 精品久久一区二区| 另类综合日韩欧美亚洲| 91精品福利在线一区二区三区| 亚洲成av人**亚洲成av**| 欧美日韩精品电影| 久久电影网站中文字幕| 成人欧美一区二区三区小说| 亚洲午夜一区二区| 欧美日韩高清影院| 亚洲成av人片在www色猫咪| 中文字幕日本乱码精品影院| 久久夜色精品国产噜噜av| 日韩欧美亚洲另类制服综合在线| caoporn国产一区二区| 亚洲精选免费视频| 91精品国产福利在线观看| 色综合欧美在线视频区| 婷婷综合另类小说色区| 欧美电影在线免费观看| 国产精品久久久久久妇女6080 | 一区二区三区小说| 欧美视频一区二区三区四区| 美女视频第一区二区三区免费观看网站| 欧洲一区在线观看| 韩国av一区二区三区在线观看| 亚洲免费毛片网站| 中文无字幕一区二区三区| wwwwww.欧美系列| 337p粉嫩大胆噜噜噜噜噜91av| 欧美sm美女调教| 国产精品拍天天在线| 国产精品无遮挡| 亚洲成a人片在线不卡一二三区| 亚洲在线视频免费观看| 午夜电影久久久| 国产福利精品一区二区| 成人一级黄色片| 日韩视频国产视频| 91精品婷婷国产综合久久竹菊| 91.com视频| 欧美特级限制片免费在线观看| 欧美日韩高清一区二区不卡| 欧美人狂配大交3d怪物一区| 91成人看片片| 欧美日本一区二区| 欧美一级在线免费| 久久久精品免费网站| 国产精品久久福利| 亚洲gay无套男同| 国产精品自在在线| 99精品视频在线观看| 欧美日韩激情在线| 久久久久高清精品| 国产精品久久久久久久久免费樱桃| 1区2区3区精品视频| 日韩一区二区三区观看| 美女视频第一区二区三区免费观看网站 | 亚洲视频狠狠干| 国产在线不卡视频| 91一区二区在线| 午夜精品一区二区三区三上悠亚| 国产精品女主播av| 亚洲国产日韩a在线播放性色| 日韩不卡一区二区三区| 国产高清精品久久久久| 在线这里只有精品| 久久亚洲私人国产精品va媚药| 17c精品麻豆一区二区免费| 日本欧美大码aⅴ在线播放| 丁香桃色午夜亚洲一区二区三区| 在线观看一区不卡| 国产校园另类小说区| 日韩激情视频在线观看| av亚洲精华国产精华精| 欧美一二三区精品| 亚洲图片欧美激情| 国产一本一道久久香蕉| 欧美精品久久99久久在免费线| 国产片一区二区| 秋霞电影网一区二区| 色综合久久久久综合99| 久久久久99精品国产片| 丝袜美腿一区二区三区| 99vv1com这只有精品| 久久久久久久久久看片| 日本免费新一区视频 | 一本到一区二区三区| 久久久亚洲欧洲日产国码αv| 日韩激情一二三区| 欧美中文字幕不卡| 亚洲欧美另类图片小说| 国产精品88av| 亚洲精品一区二区三区精华液| 五月综合激情网| 91国产精品成人| 亚洲国产精品黑人久久久| 国产在线国偷精品产拍免费yy| 制服.丝袜.亚洲.中文.综合 | 亚洲va中文字幕| 在线影院国内精品| 中文字幕字幕中文在线中不卡视频| 国产麻豆精品视频| 26uuu亚洲婷婷狠狠天堂| 日本中文在线一区| 欧美日韩国产区一| 99国产精品国产精品久久| 在线观看免费一区| 亚洲日本免费电影| 91蝌蚪porny九色| 亚洲欧美日韩中文字幕一区二区三区 | 青青草一区二区三区| 777色狠狠一区二区三区| 午夜欧美电影在线观看| 欧美老肥妇做.爰bbww视频| 亚洲成人一区在线| 91麻豆精品国产自产在线| 蜜桃久久久久久| 2020国产成人综合网| 国产+成+人+亚洲欧洲自线| 日本一区二区三区电影| 国产成人精品三级麻豆| 国产精品乱码一区二三区小蝌蚪| www.成人在线| 亚洲综合视频网| 91.com在线观看| 激情久久五月天| 中文字幕乱码久久午夜不卡| av亚洲精华国产精华精华| 亚洲一区二区三区三| 日韩一区二区在线播放| 国产精品一区二区三区乱码| 国产精品另类一区| 欧美在线一二三| 免费精品99久久国产综合精品| 久久久亚洲午夜电影| 99视频精品全部免费在线| 亚洲图片有声小说|