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

Windows编程

开发平台:

Visual C++

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