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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mwobjects.cc

?? microWindows的模擬器,VC下
?? CC
字號:
/*  Copyright (C) Chris Johns (ccj@acm.org)  Microwindows C++ Wrappers. */#include <algorithm>#include <stdarg.h>#include <stdio.h>#include <mwobjects.h>namespace MicroWindowsObjects{  static Application *the_application = 0;  WindowClass::WindowClass ()  {    wclass.style         = CS_DBLCLKS | CS_VREDRAW | CS_HREDRAW;    wclass.lpfnWndProc   = 0;    wclass.lpfnWndProc   = 0;    wclass.cbClsExtra    = 0;    wclass.cbWndExtra    = 0;    wclass.hInstance     = 0;    wclass.hIcon         = 0;    wclass.hCursor       = 0;    wclass.hbrBackground = 0;    wclass.lpszMenuName  = 0;    wclass.lpszClassName = 0;  }  WindowClass::WindowClass (LPCSTR    lpszClassName,                            UINT      style,                            int       cbClsExtra,                            int       cbWndExtra,                            HINSTANCE hInstance,                            HICON     hIcon,                            HCURSOR   hCursor,                            HBRUSH    hbrBackground,                            LPCSTR    lpszMenuName)  {    wclass.style         = style;    wclass.lpfnWndProc   = (WNDPROC) Window::WndProc;    wclass.cbClsExtra    = cbClsExtra;    wclass.cbWndExtra    = cbWndExtra + sizeof (Window *);    wclass.hInstance     = hInstance;    wclass.hIcon         = hIcon;    wclass.hCursor       = hCursor;    wclass.hbrBackground = hbrBackground;    wclass.lpszMenuName  = lpszMenuName;    wclass.lpszClassName = lpszClassName;   }  ATOM WindowClass::register_class ()  {    return RegisterClass (&wclass);  }  Window::Window ()    : hwnd (0)  {  }  Window::Window (DWORD     dwExStyle,                  LPCSTR    lpClassName,                  LPCSTR    lpWindowName,                  DWORD     dwStyle,                  int       x,                   int       y,                  int       nWidth,                  int       nHeight,                  HWND      hwndParent,                  HMENU     hMenu,                  HINSTANCE hInstance,                  LPVOID    lpParam)    : hwnd (0)  {    create (dwExStyle,            lpClassName,            lpWindowName,            dwStyle,            x, y, nWidth, nHeight,            hwndParent,            hMenu,            hInstance,            lpParam);  }  Window::~Window ()  {    destory ();  }  HWND  Window::create (DWORD     dwExStyle,                  LPCSTR    lpClassName,                  LPCSTR    lpWindowName,                  DWORD     dwStyle,                  int       x,                   int       y,                  int       nWidth,                  int       nHeight,                  HWND      hwndParent,                  HMENU     hMenu,                  HINSTANCE hInstance,                  LPVOID    lpParam)  {    lpCreateParams = lpParam;      lpParam = (LPVOID) this;      hwnd = ::CreateWindowEx (dwExStyle,                              lpClassName,                             lpWindowName,                             dwStyle,                             x, y, nWidth, nHeight,                             hwndParent,                             hMenu,                             hInstance,                             lpParam);    return hwnd;  }  BOOL  Window::destory ()  {    if (hwnd)    {      HWND old_hwnd = hwnd;      hwnd = 0;      return ::DestroyWindow (old_hwnd);    }    return 0;  }  bool  Window::attach (const int fd, FileDescriptor& file_descriptor)  {    //    // The user must set the fd before being added to the set.    //    if ((fd < 0) || (fd >= FD_SETSIZE) || (file_descriptor.file_desc != -1))      return false;      //    // If this fd is already taken do not add another.    //    file_descriptor.file_desc = fd;    file_descriptor.window    = this;    if (file_descriptors.find (&file_descriptor) != file_descriptors.end ())    {      file_descriptor.file_desc = -1;      file_descriptor.window    = 0;      return false;    }      file_descriptors.insert (&file_descriptor);      return true;  }  bool  Window::detach (FileDescriptor& file_descriptor)  {    //    // The user must set the fd before being added to the set.    //    if ((file_descriptor.fd () < 0) || (file_descriptor.fd () >= FD_SETSIZE))      return false;      //    // If this fd is already taken do not add another.    //    if (file_descriptors.find (&file_descriptor) == file_descriptors.end ())      return false;      file_descriptor.disable_read ();    file_descriptor.disable_write ();    file_descriptor.disable_except ();      file_descriptors.erase (&file_descriptor);    file_descriptor.file_desc = -1;    file_descriptor.window    = 0;    return true;  }  struct eq_fd  {    const int fd;    eq_fd (const int fd) : fd (fd) {}    bool operator() (const FileDescriptor* f1) const       { return (f1->fd () == fd); }  };    LRESULT  Window::message_handler (UINT   msg,                           WPARAM wp,                           LPARAM lp)  {    switch (msg)    {      case WM_FDINPUT:      case WM_FDOUTPUT:      case WM_FDEXCEPT:            {        //        // The iterator provides a reference to the object pointer        // as the set contains pointers.        //        set<FileDescriptor*>::iterator file_descriptor;         file_descriptor = find_if (file_descriptors.begin (),                                    file_descriptors.end (),                                    eq_fd ((int) wp));        if (file_descriptor != file_descriptors.end ())        {          switch (msg)          {            case WM_FDINPUT:              return (*file_descriptor)->read ();                        case WM_FDOUTPUT:              return (*file_descriptor)->write ();                        case WM_FDEXCEPT:              return (*file_descriptor)->except ();          }        }      }      break;            default:        break;    }      return ::DefWindowProc (hwnd, msg, wp, lp);  }  bool  Window::ltint::operator () (const FileDescriptor* f1,                               const FileDescriptor* f2) const  {    return f1->fd () < f2->fd ();  }  LRESULT CALLBACK   Window::WndProc (HWND hwnd, UINT msg, WPARAM wp, LPARAM lp)  {    int    offset  = GetClassLong (hwnd, GCL_CBWNDEXTRA) - sizeof (Window *);    Window *window = 0;      if (msg == WM_CREATE)    {      LPCREATESTRUCT cs = (LPCREATESTRUCT) lp;          window = dynamic_cast<Window*>((Window*) cs->lpCreateParams);      if (window)      {        window->hwnd = hwnd;        SetWindowLong (hwnd, offset, (DWORD) window);        cs->lpCreateParams = window->lpCreateParams;      }    }    else    {      window = dynamic_cast<Window*>((Window*) GetWindowLong (hwnd, offset));    }        if (window)      return window->message_handler (msg, wp, lp);      return ::DefWindowProc (hwnd, msg, wp, lp);  }  Paint::Paint (HWND hwnd)    : hwnd (hwnd),      draw_3d (false),      drawing (false),      r (0, 0, 0, 0),      text_format (0)  {  }  Paint::Paint (HWND hwnd, LPARAM lpParam)    : hwnd (hwnd),      draw_3d (false),      drawing (false),      r (0, 0, 0, 0),      text_format (0)  {    POINTSTOPOINT (pt, lpParam);    }  Paint::~Paint ()  {    end ();  }  void  Paint::begin (bool init_3d, bool draw_3d_in_mem)  {    if (!drawing && hwnd)    {      hdc = ::BeginPaint (hwnd, &ps);          r.get_client (hwnd);          if (init_3d)        initialise_3d (draw_3d_in_mem);          drawing = true;    }  }  void  Paint::end ()  {    if (drawing)    {      paint_3d ();      ::EndPaint (hwnd, &ps);      drawing = false;    }  }  int  Paint::text_out (int x, int y, const char *format, ...)  {    Rect    rect (x, y, x + 100, y + 100);    va_list arg;      va_start (arg, format);    vsnprintf (format_buf, TEXT_BUF_SIZE, format, arg);    format_buf[TEXT_BUF_SIZE - 1] = '\0';    return ::DrawText (hdc, format_buf, -1, rect, text_format);  }  FileDescriptor::FileDescriptor ()    : file_desc (-1),      window (0)  {  }  FileDescriptor::~FileDescriptor ()  {    if (window)      window->detach (*this);  }  bool  FileDescriptor::enable_read ()  {    if (!read_is_enabled && window && (file_desc != -1))    {      ::MwRegisterFdInput (*window, file_desc);      read_is_enabled = true;      return true;    }    return false;  }  bool  FileDescriptor::disable_read ()  {    if (read_is_enabled && window && (file_desc != -1))    {      ::MwUnregisterFdInput (*window, file_desc);      read_is_enabled = false;      return true;    }    return false;  }  bool  FileDescriptor::enable_write ()  {    if (!write_is_enabled && window && (file_desc != -1))    {      ::MwRegisterFdOutput (*window, file_desc);      write_is_enabled = true;      return true;    }    return false;  }  bool  FileDescriptor::disable_write ()  {    if (write_is_enabled && window && (file_desc != -1))    {      ::MwUnregisterFdOutput (*window, file_desc);      write_is_enabled = false;      return true;    }    return false;  }  bool  FileDescriptor::enable_except ()  {    if (!except_is_enabled && window && (file_desc != -1))    {      ::MwRegisterFdExcept (*window, file_desc);      except_is_enabled = true;      return true;    }    return false;  }  bool  FileDescriptor::disable_except ()  {    if (except_is_enabled && window && (file_desc != -1))    {      ::MwUnregisterFdExcept (*window, file_desc);      except_is_enabled = false;      return true;    }    return false;  }  LRESULT  FileDescriptor::read ()  {    return 0;  }  LRESULT  FileDescriptor::write ()  {    return 0;  }  LRESULT  FileDescriptor::except ()  {    return 0;  }  Application::Application ()    : background (0)  {    if (!the_application)      the_application = this;  }  Application::Application (MWIMAGEHDR& background)    : background (&background)  {    if (!the_application)      the_application = this;  }  Application::~Application ()  {  }  int  Application::initialise ()  {    return 0;  }  int  Application::shutdown ()  {    return 0;  }  int WINAPI   Application::WinMain (HINSTANCE hInstance,                         HINSTANCE hPrevInstance,                         LPSTR     lpCmdLine,                        int       nShowCmd)  {    if (the_application)    {      int result;          MwRegisterButtonControl (0);          result = the_application->initialise ();          if (result)        return result;          //      // Set background wallpaper      //          if (the_application->background)        MwSetDesktopWallpaper (the_application->background);      MSG msg;          //      // type ESC to quit...      //          while (GetMessage (&msg, 0, 0, 0))       {        TranslateMessage (&msg);        DispatchMessage (&msg);      }      result = the_application->shutdown ();          if (result)        return result;          return 0;    }      return 1;  }};////  Global Microwindows WinMain () routine with "C" linkage//extern "C"{  int WinMain (HINSTANCE hInstance,                HINSTANCE hPrevInstance,                LPSTR     lpCmdLine,                int       nShowCmd)  {    return MicroWindowsObjects::Application::WinMain (hInstance,                                                       hPrevInstance,                                                       lpCmdLine,                                                        nShowCmd);  }};

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美色成人综合| 国产精品一区不卡| 欧美视频一区在线观看| 一区二区三区四区国产精品| 在线免费观看日本一区| 亚洲成人动漫精品| 精品国产乱码久久久久久蜜臀 | 在线观看成人免费视频| 一区二区三区四区激情| 91麻豆精品国产91久久久久久 | 国产91富婆露脸刺激对白| 日本一区二区三区电影| 91免费国产在线观看| 香港成人在线视频| 久久综合99re88久久爱| av资源网一区| 日韩精品国产欧美| 国产校园另类小说区| 91蝌蚪porny| 日韩电影免费在线看| 国产午夜亚洲精品理论片色戒| 91尤物视频在线观看| 亚洲香肠在线观看| 久久美女艺术照精彩视频福利播放 | 在线观看91精品国产入口| 日韩影院在线观看| 中文一区二区在线观看| 欧美日韩一区国产| 成人综合在线网站| 亚洲成av人影院在线观看网| 久久综合成人精品亚洲另类欧美| 91美女在线视频| 激情欧美一区二区| 亚洲一区二区高清| 国产色一区二区| 911国产精品| 色综合咪咪久久| 国产麻豆视频一区二区| 无码av中文一区二区三区桃花岛| 欧美激情一区二区三区四区 | 黄色小说综合网站| 亚洲一区二区在线视频| 亚洲国产激情av| 日韩精品最新网址| 欧美综合在线视频| 99久久亚洲一区二区三区青草| 免费成人在线视频观看| 一区二区三区在线免费视频| 欧美国产97人人爽人人喊| 91精品国产欧美一区二区成人| 色综合久久中文字幕综合网| 国产精品一品二品| 精品一二三四区| 日本欧美加勒比视频| 一区二区成人在线| 国产精品每日更新在线播放网址| 日韩精品一区二区三区老鸭窝| 欧美日韩国产美女| 欧美天堂亚洲电影院在线播放| 成人不卡免费av| 国产91精品在线观看| 国产在线一区二区综合免费视频| 日韩中文字幕一区二区三区| 亚洲高清免费观看高清完整版在线观看 | 国产成人精品综合在线观看| 日本系列欧美系列| 日本亚洲天堂网| 亚洲成人在线免费| 亚洲电影欧美电影有声小说| 亚洲一区二区三区四区在线观看 | 成人免费视频一区| 国产成人在线视频播放| 国产一区二区伦理| 国产曰批免费观看久久久| 美女久久久精品| 久久99久久精品| 激情成人综合网| 国产精品影视网| 国产精品12区| av资源网一区| 欧美在线制服丝袜| 这里只有精品视频在线观看| 日韩精品资源二区在线| 久久一区二区三区国产精品| 国产日韩欧美a| 亚洲欧洲国产日本综合| 亚洲精品成人a在线观看| 亚洲一区在线电影| 日韩高清不卡在线| 精品一区二区三区免费毛片爱| 国内精品国产成人国产三级粉色| 狠狠色综合日日| 99久久久免费精品国产一区二区| 欧美在线制服丝袜| 欧美一区二区三区视频在线| 欧美xxxxxxxx| 国产精品三级久久久久三级| 亚洲精品v日韩精品| 日韩高清在线电影| 国产99精品国产| 欧美在线一区二区三区| 欧美成人福利视频| 国产清纯美女被跳蛋高潮一区二区久久w | 狠狠久久亚洲欧美| 成人小视频在线观看| 欧美中文字幕一区二区三区| 欧美一区二区三区的| 国产欧美综合在线观看第十页| 亚洲欧美另类综合偷拍| 日韩国产欧美三级| 国产成人精品影视| 欧美性极品少妇| 久久久久久久久蜜桃| 亚洲综合小说图片| 国内精品视频666| 在线影视一区二区三区| 欧美变态tickling挠脚心| 中文字幕在线观看一区二区| 五月天亚洲婷婷| 成人app下载| 日韩一区二区不卡| 亚洲激情校园春色| 国产一区免费电影| 欧美日韩国产中文| 国产精品日韩成人| 久久国产综合精品| 在线免费观看视频一区| 中文字幕av一区二区三区| 青青草97国产精品免费观看| 99久免费精品视频在线观看| 日韩免费成人网| 性感美女极品91精品| 99久久久精品| 久久久久久久久久久久久夜| 天天爽夜夜爽夜夜爽精品视频| av电影在线观看完整版一区二区| 日韩视频免费观看高清完整版在线观看| 亚洲欧洲成人自拍| 国产精品系列在线观看| 日韩欧美专区在线| 亚洲.国产.中文慕字在线| 91亚洲大成网污www| 欧美国产欧美综合| 国产一区二区三区免费观看| 这里是久久伊人| 亚洲v中文字幕| 色婷婷国产精品| 国产精品护士白丝一区av| 国产精品88av| 欧美xxxxx牲另类人与| 日韩av网站免费在线| 欧美三级电影网站| 一区二区三区在线免费| 色天使色偷偷av一区二区| 国产精品九色蝌蚪自拍| av在线不卡免费看| 国产精品视频麻豆| 成人一级片在线观看| 国产欧美一区视频| 国产精品综合二区| 国产亚洲精品bt天堂精选| 国产成人综合亚洲91猫咪| 久久久不卡网国产精品一区| 国产精品亚洲综合一区在线观看| 精品国产一区二区精华| 极品美女销魂一区二区三区| 精品国产乱码久久久久久久久 | 日韩综合小视频| 欧美精品欧美精品系列| 亚洲va国产天堂va久久en| 欧美三级韩国三级日本一级| 亚洲va天堂va国产va久| 日韩一区国产二区欧美三区| 日本三级亚洲精品| 欧美精品一区二区三区在线播放| 国产一区亚洲一区| 国产精品视频观看| 在线免费观看日韩欧美| 日本亚洲三级在线| 久久日韩粉嫩一区二区三区 | 最好看的中文字幕久久| 色综合久久久久久久久久久| 亚洲国产精品久久久久婷婷884| 欧美人妇做爰xxxⅹ性高电影| 日韩高清不卡在线| 久久久久久久久久美女| 91网站在线观看视频| 亚洲制服丝袜av| 欧美一级理论片| 成人精品视频一区二区三区尤物| 亚洲色图在线视频| 欧美美女一区二区在线观看| 国产中文字幕一区| 日韩码欧中文字| 欧美精品v日韩精品v韩国精品v| 韩国欧美国产1区| 亚洲欧美日韩久久精品| 欧美一级二级在线观看| www.亚洲精品| 琪琪久久久久日韩精品|