⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tddrawapp.h

📁 俄罗斯方块双打版
💻 H
字号:
//---------------------------------------------------------------------------
#ifndef _TDDRAWAPP_H_YBCHEN_
#define _TDDRAWAPP_H_YBCHEN_
//---------------------------------------------------------------------------
#include "TDDrawBase.h"
//---------------------------------------------------------------------------
class PACKAGE TWinApp:public TObject
{
public:
  __fastcall TWinApp(HINSTANCE hInstance, int nCmdShow);
  virtual __fastcall ~TWinApp(){}
  virtual int __fastcall Run(void);
  inline void __fastcall Close(void) { if(hWnd)PostMessage(hWnd,WM_CLOSE,0,0); }

  __property HWND      hWnd      = { read = _hWnd  };
  __property HINSTANCE hInstance = { read = _hInst };

protected:
  virtual void __fastcall CreateParams(Controls::TCreateParams &Params);
  virtual void __fastcall InitWindow(void);
  virtual void __fastcall WndProc(Messages::TMessage &Message);
  virtual void __fastcall IdleProcess(bool &Done);

private:
  void __fastcall _fWndProc(Messages::TMessage &Message){WndProc(Message);}
  static LRESULT CALLBACK _flpOldWndProc(HWND,UINT,WPARAM,LPARAM);
  LRESULT (CALLBACK *_flpNewWndProc)(HWND,UINT,WPARAM,LPARAM);

  HWND _hWnd;
  int  _nCmdShow;
  bool _bInitHide;
  HINSTANCE _hInst;
  HACCEL _hAccel;
  char _fCaption[255];
};
//---------------------------------------------------------------------------
class PACKAGE TDDrawApp:public TWinApp
{
public:
  __fastcall TDDrawApp(HINSTANCE hInstance, int nCmdShow);

  __property int ScreenWidth  = { read = _ScrWidth , write = fSetScrWidth  };
  __property int ScreenHeight = { read = _ScrHeight, write = fSetScrHeight };
  __property int ScreenBpp    = { read = _ScrBpp   , write = fSetScrBpp    };

  __property bool      Active  = { read = _bActive };
  __property TDDrawDisplay *Display = { read = _Display };

  __property LPDIRECTDRAW7        DirectDraw     = { read = fGetDirectDraw  };
  __property LPDIRECTDRAWSURFACE7 FrontBuffer    = { read = fGetFrontBuffer };
  __property LPDIRECTDRAWSURFACE7 BackBuffer     = { read = fGetBackBuffer  };

  void __fastcall (__closure *OnDispFrame)(void);
  void __fastcall (__closure *OnRestFrame)(void);
  void __fastcall (__closure *OnKeyboard )(int nKey, bool bPressed);

protected:
  virtual void __fastcall InitWindow(void);
  virtual void __fastcall WndProc(Messages::TMessage &Message);
  virtual void __fastcall IdleProcess(bool &Done);

  virtual void __fastcall EvInitDDraw(void)       {}
  virtual void __fastcall EvUninitDDraw(void)     {}
  virtual void __fastcall EvDisplayFrame(void)    { if(OnDispFrame)OnDispFrame(); else Display->Clear(); }
  virtual void __fastcall EvRestoreSurfaces(void) { if(OnRestFrame)OnRestFrame();                        }
  virtual void __fastcall EvKeyboard(int nKey, bool bPressed) { if(OnKeyboard)OnKeyboard(nKey,bPressed); }

private:
  inline void __fastcall fSetScrWidth(int w)  { _ScrWidth  = w; }
  inline void __fastcall fSetScrHeight(int h) { _ScrHeight = h; }
  inline void __fastcall fSetScrBpp(int b)    { _ScrBpp    = b; }

  inline LPDIRECTDRAW7        __fastcall fGetDirectDraw (void) { return _Display->DirectDraw;     }
  inline LPDIRECTDRAWSURFACE7 __fastcall fGetFrontBuffer(void) { return _Display->FrontBuffer;    }
  inline LPDIRECTDRAWSURFACE7 __fastcall fGetBackBuffer (void) { return _Display->BackBuffer;     }

  void __fastcall fInitDDraw(void);
  void __fastcall fUninitDDraw(void);

  TDDrawDisplay *_Display;
  bool _bActive;
  int _ScrWidth, _ScrHeight, _ScrBpp;
};
//---------------------------------------------------------------------------
#endif
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -