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

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

?? vt102em.hpp

?? 使用BorlandC++4.5編譯的一個MUD客戶端程序
?? HPP
字號:
#ifndef VT102EM_HPP
#define VT102EM_HPP

// ------------------------------------------------------------------------
// $Id: vt102em.hpp 2.2 1995/10/30 18:28:46 tsurace Beta $
// $Log: vt102em.hpp $// Revision 2.2  1995/10/30  18:28:46  tsurace// Added debug toggle and console mode switch to system menu.//
// Revision 2.1  1995/10/24  15:52:51  tsurace
// Roll.
//
// Revision 1.5  1995/10/18  22:58:27  tsurace
// Made MY_SOCKET_LONG message publicly available.
//
// Revision 1.4  1995/10/11  21:25:35  tsurace
// Moved Global to global.hpp.
// Added error checking and return value to NewSocket.
//
// Revision 1.3  1995/10/08  23:29:54  tsurace
// Added code to force update faster when scrolling.
//
// (end of log)

#include <winsock.h>

#include "resids.hpp"
#include "ascscrn.hpp"
#include "units.hpp"

// WM_USER through 0x7FFF are ours to use
const long VT_SOCKET_MSG  = (WM_USER + 1); // Recieved on socket evts

// All system menu ids must be less than 0xF000, and will be masked
// out with 0xFFF0.
const long VT_SYSMENU_DEBUG   = (0xF000 - 0x10);
const long VT_SYSMENU_CONSOLE = (0xF000 - 0x20);

// -----------------------------------------------------------------
// vt102em.hpp - VT 102 emulator window class
//
// Author: Tom Surace
//
// This class is intended as a simple win32s interface to the
// VaporTalk program, when it is compiled with -DHARDCODE
//
class VT102Emulator
{
friend class Global; // Can call WndProc
  public:
    VT102Emulator(int nCmdShow);
    virtual ~VT102Emulator();

    // Window Management functions
    HWND Handle();
    BOOL Show(int nCmdShow);
    void Update();

    // These are called by VaporTalk
    const char * NewSocket (SOCKET s, long events); 
    virtual void Output(char * str, int len); // Write a string

    // These are called by the AsciiScreen
    void Invalidate(const Pos & pos, const Size & size);
    static void InvalidateStaticCB(const Pos & pos,
                                   const Size & size,
                                   void * this_ptr);
    
    int ScrollArea(int target, int source, int size);
    static int  ScrollAreaStaticCB(int target,
                                   int source,
                                   int size,
                                   void * this_ptr);

  protected:
    HFONT            _font;        // You may modify this
    COLORREF         _backgroundColor; // Registered with class, too
    COLORREF         _cursorColor; // Color of cursor
    COLORREF         _cursorBackground;
    HPEN             _cursorPen;   // Pen used to outline cursor
    DWORD            _lastPaintTickCount; // Tick count at last WM_PAINT event
    int              _forceUpdateSoon;   // If nonzero, try to update soon!
    Size             _fontSize;
    AsciiScreen      _screen;  // The screen object
    virtual void     _Paint(); // Called on expose event
    virtual void     _Size(WPARAM type, int width, int height);

    // This is called for all events that are not routed to the above functions
    // Classes that handle the message should return nonzero, and set the
    // value of return_value_ret to an appropriate value, otherwise they
    // should return zero.
    virtual int _Dispatch(UINT msg,
                          WPARAM wParam,
                          LPARAM lParam,
                          LRESULT & return_value_ret);

  private:
    HWND             _hWnd;            // Handle of this window

    void             _DoSocketEvent(int event, int error_code);
    LRESULT          _SysMenuCommand(WPARAM command);
    void             _InitScreen();    // Default initialization
    int              _initialized;     // 0 until constructed
    void             _GetTextArea(const Pos & pos, RECT & area) const;
    void             _PutText(HDC hdc, HRGN clip_reg);  // _Paint helper
    void             _PutTextOneLine(HDC hdc, int row); // _PutText helper
    void             _PutCursor(HDC hdc);               // _Paint helper
    void             _TextToDevice(Pos & pos) const;
    
    static void      _Register();      // Class registration
    static char      _szClassName[80]; // Class name

    // This is called ONLY by Global::WndProc
    LRESULT WndProc( UINT iMessage, WPARAM wParam, LPARAM lParam );

};

// >>>>> Inline Functions <<<<< //
inline BOOL VT102Emulator::Show(int nCmdShow)
{
    return ShowWindow(Handle(), nCmdShow);
}

inline HWND VT102Emulator::Handle()
{
    return _hWnd;
}

inline void VT102Emulator::Update()
{
    UpdateWindow(Handle());
}

// ------------------------------------------------------------------------
// _ScreenToDevice - Converts screen pos to window (pixel) coords
//
inline void VT102Emulator::_TextToDevice(Pos & pos) const
{
    pos.X() = pos.X() * _fontSize.Width();
    pos.Y() = pos.Y() * _fontSize.Height();
}

// ------------------------------------------------------------------------
// _GetTextArea - returns screen area occupied by text cell at 'pos'
inline void VT102Emulator::_GetTextArea(const Pos & pos, RECT & area) const
{
    area.left = pos.X() * _fontSize.Width();
    area.top = pos.Y() * _fontSize.Height();
    
    area.right = area.left + _fontSize.Width();   // One char area
    area.bottom = area.top + _fontSize.Height();
}

#endif // VT102EM_HPP

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆免费观看| 国产精品成人免费在线| 国产欧美精品日韩区二区麻豆天美| 国产精品蜜臀在线观看| 日本不卡123| 91农村精品一区二区在线| 精品美女一区二区三区| 一区二区三区中文在线观看| 国产精品影视在线观看| 欧美一区二区黄色| 一区二区免费看| 成人午夜视频在线观看| 精品国产自在久精品国产| 五月天中文字幕一区二区| 99在线精品一区二区三区| 久久久精品一品道一区| 美女久久久精品| 91精品在线一区二区| 亚洲综合一区二区三区| 色偷偷一区二区三区| 日本一区二区三区在线观看| 国产在线精品国自产拍免费| 欧美一区二视频| 天涯成人国产亚洲精品一区av| 91官网在线观看| 亚洲女与黑人做爰| 99久精品国产| 中文字幕一区二区三区乱码在线| 国产福利视频一区二区三区| 久久嫩草精品久久久精品一| 精品一区二区三区影院在线午夜| 日韩欧美专区在线| 久久se这里有精品| 久久夜色精品国产噜噜av| 韩国女主播一区二区三区| www国产亚洲精品久久麻豆| 精品一区二区久久| 久久蜜桃av一区精品变态类天堂| 久久aⅴ国产欧美74aaa| 久久伊99综合婷婷久久伊| 国产一区二区伦理片| 国产欧美一区二区三区在线看蜜臀 | 亚洲视频免费在线| 一本色道久久综合亚洲91| 亚洲欧美日韩成人高清在线一区| 91美女视频网站| 亚洲综合一二区| 欧美一区二区免费观在线| 韩国精品主播一区二区在线观看 | 国产曰批免费观看久久久| 久久久.com| 色婷婷国产精品久久包臀| 亚洲一区国产视频| 日韩免费在线观看| 国产99精品国产| 亚洲美女区一区| 欧美一级片在线观看| 国产精品77777| 亚洲免费成人av| 3d动漫精品啪啪1区2区免费| 国产精品一区二区三区乱码| 国产精品欧美一级免费| 在线亚洲一区观看| 韩国欧美国产一区| 自拍偷拍亚洲欧美日韩| 7777精品久久久大香线蕉| 国产精品66部| 亚洲成av人片| 国产日韩欧美精品在线| 在线精品视频一区二区| 精品系列免费在线观看| 亚洲视频一区在线观看| 日韩欧美国产1| aaa欧美色吧激情视频| 免费美女久久99| 国产精品美女久久久久久2018| 在线视频亚洲一区| 国产美女主播视频一区| 一区二区三国产精华液| 国产欧美一区二区精品久导航| 在线精品视频免费观看| 国产精选一区二区三区| 亚洲成人在线网站| 亚洲欧洲av另类| 精品国产不卡一区二区三区| 色中色一区二区| 国产精品一区二区在线看| 亚洲18色成人| 自拍偷拍欧美精品| 久久精品免费在线观看| 91麻豆精品国产自产在线观看一区 | 亚洲精品国产精华液| 久久综合九色综合欧美就去吻| 欧美在线看片a免费观看| 国产成人综合在线观看| 久久机这里只有精品| 亚洲第四色夜色| 一区二区三区美女| 国产精品国模大尺度视频| 久久久久久久久久久久电影| 91麻豆精品久久久久蜜臀 | 精品国产1区二区| 91精品国产高清一区二区三区| 色综合咪咪久久| 9色porny自拍视频一区二区| 成人免费高清视频在线观看| 韩国成人精品a∨在线观看| 蜜桃av一区二区三区电影| 亚洲第一精品在线| 亚洲第一主播视频| 性做久久久久久免费观看欧美| 中文字幕一区二区三区四区不卡| 欧美极品美女视频| 久久精品人人做人人爽97| 久久久久久免费网| 久久天堂av综合合色蜜桃网| 欧美一级专区免费大片| 欧美人妇做爰xxxⅹ性高电影| 在线国产亚洲欧美| 欧美视频在线观看一区| 欧美日韩精品欧美日韩精品| 欧美日韩国产一级片| 777奇米四色成人影色区| 91精品国产综合久久久蜜臀粉嫩 | 《视频一区视频二区| 中文字幕在线视频一区| 国产精品久久久久久久久免费相片 | 日韩久久一区二区| 亚洲精品综合在线| 亚洲成av人片在线观看| 日韩精品欧美成人高清一区二区| 视频一区视频二区中文| 久久精品99国产精品| 国产成人啪免费观看软件| 99久久国产综合精品女不卡| 97久久久精品综合88久久| 欧美调教femdomvk| 日韩一级免费一区| 欧美国产国产综合| 亚洲国产精品人人做人人爽| 青青草97国产精品免费观看无弹窗版| 精品在线亚洲视频| 成人精品电影在线观看| 欧美日韩在线直播| 久久久久久久久久久黄色| 综合久久给合久久狠狠狠97色 | 国产精品国产自产拍高清av王其| 亚洲欧美二区三区| 美女高潮久久久| 91热门视频在线观看| 欧美一级久久久| 中文字幕乱码一区二区免费| 亚洲国产视频直播| 精品无码三级在线观看视频| 91丝袜美女网| 欧美一级免费观看| 日韩一区日韩二区| 久久激五月天综合精品| 在线日韩一区二区| xfplay精品久久| 亚洲va天堂va国产va久| 国产老妇另类xxxxx| 在线电影院国产精品| 国产精品美女久久福利网站| 免费xxxx性欧美18vr| 91视视频在线直接观看在线看网页在线看| 欧美日韩成人综合在线一区二区| 国产亚洲综合av| 毛片av中文字幕一区二区| 91亚洲国产成人精品一区二区三| www久久精品| 日本不卡一区二区| 欧美最新大片在线看| 欧美激情一区二区三区蜜桃视频| 日日夜夜免费精品| 一本久久a久久精品亚洲| 久久影视一区二区| 免费高清不卡av| 欧美色大人视频| 亚洲尤物在线视频观看| 国产成人a级片| 久久久久久久久伊人| 老汉av免费一区二区三区| 欧美高清视频一二三区| 亚洲美女精品一区| 不卡一二三区首页| 中文字幕av一区二区三区免费看| 麻豆国产精品一区二区三区| 欧美日韩精品一区视频| 亚洲午夜在线视频| 波多野结衣亚洲| 中文字幕av免费专区久久| 国产精品自拍毛片| 久久久久久9999| 国产精品综合一区二区| 久久精品综合网| 国产成人99久久亚洲综合精品| 久久综合久久综合久久综合| 国模娜娜一区二区三区| 久久人人超碰精品|