home *** CD-ROM | disk | FTP | other *** search
/ Informática Multimedia: Special Games / INFESPGAMES.mdf / os2 / ribble / support / win / cwindow.h < prev   
Encoding:
C/C++ Source or Header  |  1994-07-01  |  3.7 KB  |  157 lines

  1. #ifndef _cwindow_h
  2. #define _cwindow_h
  3.  
  4. #include <stdlib.h>
  5. #include <cstrng.h>
  6.  
  7. class CApplication
  8. {
  9. public:
  10.   CApplication(void);
  11.   virtual ~CApplication();
  12.   void Run(void);
  13.   HAB QueryHAB(void) { return hab; }
  14.   HMQ QueryHMQ(void) { return hmq; }
  15.  
  16. private:
  17.   HAB hab;
  18.   HMQ hmq;
  19. };
  20.  
  21. #define CWINDOWCLIENTCLASS "CWindowClientClass"
  22. #define CWINDOWDEFFCFLAGS  (FCF_TITLEBAR | FCF_SYSMENU | FCF_MINMAX | FCF_SIZEBORDER | FCF_TASKLIST)
  23.  
  24. class CWinBase
  25. {
  26. };
  27.  
  28. class CWinFrame : private CWinBase
  29. {
  30. public:
  31.   CWinFrame(HWND  _parent  = HWND_DESKTOP,
  32.             HWND  _owner   = HWND_DESKTOP,
  33.             HAB   _hab     = 0,
  34.             ULONG _flags   = CWINDOWDEFFCFLAGS,
  35.             BOOL  _visible = FALSE,
  36.             ULONG _fid     = 1,
  37.             LONG  _x       = 0,
  38.             LONG  _y       = 0,
  39.             LONG  _w       = 0,
  40.             LONG  _h       = 0);
  41.   virtual ~CWinFrame();
  42.   void Destroy(void);
  43.  
  44.   void title(const char* _title);
  45.   void move(LONG _x, LONG _y);
  46.   void move(LONG _x, LONG _y, LONG _w, LONG _h);
  47.   void size(LONG _w, LONG _h);
  48.   void show(BOOL _visible = TRUE);
  49.   void front(void);
  50.   void back(void);
  51.  
  52. protected:
  53.   HWND      parent;
  54.   HWND      owner;
  55.   ULONG     flags;
  56.   HAB       hab;
  57.   BOOL      visible;
  58.   LONG      x, y, w, h;
  59.   ULONG     fid;
  60.  
  61. public:
  62.   HWND      hwnd;
  63.  
  64. private:
  65.   void Create(void);
  66. };
  67.  
  68. class CWinClient : private CWinBase
  69. {
  70.   friend MRESULT EXPENTRY CWinClientWindowProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
  71.  
  72. public:
  73.   CWinClient(HWND  _parent  = HWND_DESKTOP,
  74.              HWND  _owner   = HWND_DESKTOP,
  75.              HAB   _hab     = 0,
  76.              ULONG _clStyle = CS_SIZEREDRAW,
  77.              ULONG _wnStyle = 0,
  78.              ULONG _id      = FID_CLIENT,
  79.              const char* _class = CWINDOWCLIENTCLASS);
  80.   virtual ~CWinClient();
  81.   void Destroy(void);
  82.   void Create(void);
  83.  
  84.   virtual MRESULT ProcessMsg(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
  85.   virtual void SetupWindow(void);
  86.  
  87.   void move(LONG _x, LONG _y);
  88.   void move(LONG _x, LONG _y, LONG _w, LONG _h);
  89.   void size(LONG _w, LONG _h);
  90.   void show(BOOL _visible = TRUE);
  91.   void front(void);
  92.   void back(void);
  93.   void SetStyle(ULONG _style);
  94.   void SetSize(LONG x, LONG y, LONG w, LONG h);
  95.  
  96.   HAB QueryHAB(void);
  97.  
  98. protected:
  99.   HWND        parent;
  100.   HWND        owner;
  101.   PVOID       MsgSpec;
  102.  
  103. private:
  104.   ULONG     clStyle;
  105.   ULONG     wnStyle;
  106.   ULONG     winID;
  107.   HAB       hab;
  108.   CString   className;
  109.   LONG      x, y, w, h;
  110.  
  111. public:
  112.   HWND      HWindow;
  113. };
  114.  
  115. class CWinFramedClient : private CWinFrame, public CWinClient
  116. {
  117. public:
  118.   CWinFramedClient(HWND  _parent  = HWND_DESKTOP,
  119.                    HWND  _owner   = HWND_DESKTOP,
  120.                    HAB   _hab     = 0,
  121.                    ULONG _fcFlags = CWINDOWDEFFCFLAGS,
  122.                    BOOL  _visible = FALSE,
  123.                    ULONG _clStyle = CS_SIZEREDRAW,
  124.                    ULONG _wnStyle = 0,
  125.                    LONG  _x       = 0,
  126.                    LONG  _y       = 0,
  127.                    LONG  _w       = 0,
  128.                    LONG  _h       = 0,
  129.                    ULONG _id      = FID_CLIENT,
  130.                    ULONG _fid     = 1,
  131.                    const char* _class = CWINDOWCLIENTCLASS);
  132.   virtual ~CWinFramedClient();
  133.   void Destroy(void);
  134.   void Create(void);
  135.   void title(const char* _title);
  136.  
  137.   virtual MRESULT ProcessMsg(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2);
  138.   virtual void SetupWindow(void);
  139.  
  140.   void move(LONG _x, LONG _y);
  141.   void move(LONG _x, LONG _y, LONG _w, LONG _h);
  142.   void size(LONG _w, LONG _h);
  143.   void show(BOOL _visible = TRUE);
  144.   void front(void);
  145.   void back(void);
  146.  
  147.   HWND hwndFrame(void);
  148.   HWND hwndClient(void);
  149.  
  150. public:
  151. };
  152.  
  153.  
  154.  
  155. #endif
  156.  
  157.