COSMO.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:4k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /*
  2.  * COSMO.H
  3.  * Cosmo Chapter 1
  4.  *
  5.  * Single include file that pulls in everything needed for other
  6.  * source files in the Cosmo application.
  7.  *
  8.  * Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
  9.  *
  10.  * Kraig Brockschmidt, Microsoft
  11.  * Internet  :  kraigb@microsoft.com
  12.  * Compuserve:  >INTERNET:kraigb@microsoft.com
  13.  */
  14. #ifndef _COSMO_H_
  15. #define _COSMO_H_
  16. #define INC_CLASSLIB
  17. #define CHAPTER1
  18. #include <inole.h>
  19. #include "resource.h"
  20. //Get the editor window information.
  21. #include "polyline.h"
  22. //COSMO.CPP:  Frame object that creates a main window
  23. class CCosmoFrame : public CFrame
  24.     {
  25.     private:
  26.         HBITMAP         m_hBmpLines[5];     //Menu item bitmaps
  27.         UINT            m_uIDCurLine;       //Current line selection
  28.     protected:
  29.         //Overridable for creating a CClient for this frame
  30.         virtual PCClient  CreateCClient(void);
  31.         virtual BOOL      RegisterAllClasses(void);
  32.         virtual BOOL      PreShowInit(void);
  33.         virtual UINT      CreateToolbar(void);
  34.         virtual LRESULT   OnCommand(HWND, WPARAM, LPARAM);
  35.         virtual void      OnDocumentDataChange(PCDocument);
  36.         virtual void      OnDocumentActivate(PCDocument);
  37.         //New for this class
  38.         virtual void      CreateLineMenu(void);
  39.     public:
  40.         CCosmoFrame(HINSTANCE, HINSTANCE, LPSTR, int);
  41.         virtual ~CCosmoFrame(void);
  42.         //Overrides
  43.         virtual void      UpdateMenus(HMENU, UINT);
  44.         virtual void      UpdateToolbar(void);
  45.         //New for this class
  46.         virtual void      CheckLineSelection(UINT);
  47.     };
  48. typedef CCosmoFrame *PCCosmoFrame;
  49. //CLIENT.CPP
  50. /*
  51.  * The only reason we have a derived class here is to override
  52.  * CreateCDocument so we can create our own type as well as
  53.  * overriding NewDocument to perform one other piece of work once
  54.  * the document's been created.
  55.  */
  56. class CCosmoClient : public CClient
  57.     {
  58.     protected:
  59.         //Overridable for creating a new CDocument
  60.         virtual PCDocument CreateCDocument(void);
  61.     public:
  62.         CCosmoClient(HINSTANCE, PCFrame);
  63.         virtual ~CCosmoClient(void);
  64.         virtual PCDocument NewDocument(BOOL);
  65.     };
  66. typedef CCosmoClient *PCCosmoClient;
  67. //DOCUMENT.CPP
  68. //Constant ID for the window polyline that lives in a document
  69. #define ID_POLYLINE         10
  70. class CCosmoDoc : public CDocument
  71.     {
  72.     friend class CPolylineAdviseSink;
  73.     protected:
  74.         UINT                    m_uPrevSize;    //Last WM_SIZE wParam
  75.         LONG                    m_lVer;         //Loaded Polyline ver
  76.         PCPolyline              m_pPL;          //Polyline window here
  77.         PCPolylineAdviseSink    m_pPLAdv;       //Advises from Polyline
  78.     protected:
  79.         virtual BOOL     FMessageHook(HWND, UINT, WPARAM, LPARAM
  80.             , LRESULT *);
  81.     public:
  82.         CCosmoDoc(HINSTANCE, PCFrame, PCDocumentAdviseSink);
  83.         virtual ~CCosmoDoc(void);
  84.         virtual BOOL     Init(PDOCUMENTINIT);
  85.         virtual void     Clear(void);
  86.         virtual UINT     Load(BOOL, LPTSTR);
  87.         virtual UINT     Save(UINT, LPTSTR);
  88.         virtual void     Undo(void);
  89.         virtual BOOL     Clip(HWND, BOOL);
  90.         virtual HGLOBAL  RenderFormat(UINT);
  91.         virtual BOOL     FQueryPaste(void);
  92.         virtual BOOL     Paste(HWND);
  93.         virtual COLORREF ColorSet(UINT, COLORREF);
  94.         virtual COLORREF ColorGet(UINT);
  95.         virtual UINT     LineStyleSet(UINT);
  96.         virtual UINT     LineStyleGet(void);
  97.     };
  98. typedef CCosmoDoc *PCCosmoDoc;
  99. //These color indices wrap the polyline definitions
  100. #define DOCCOLOR_BACKGROUND             POLYLINECOLOR_BACKGROUND
  101. #define DOCCOLOR_LINE                   POLYLINECOLOR_LINE
  102. #endif //_COSMO_H_