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

Windows编程

开发平台:

Visual C++

  1. // dmdoc.h
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992-1998 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. // This source code is only intended as a supplement to the
  8. // Microsoft Foundation Classes Reference and related
  9. // electronic documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12. //
  13. // Purpose: interface of the CDynaMenuDoc class
  14. //
  15. // Functions:
  16. //   Most of this file was generated by AppWizard.  The functions
  17. //   which contain code specific to this sample are:
  18. //
  19. //      CDynaMenuDoc::CDynaMenuDoc()         -- document constructor
  20. //      CDynaMenuDoc::DoSelectColor()        -- handle text color commands
  21. //      CDynaMenuDoc::DoUpdateSelectColor()  -- update text color UI objects
  22. //      CDynaMenuDoc::GetMessageString()     -- get status msg for color cmds
  23. //      CDynaMenuDoc::OnCmdMsg()             -- perform command routing
  24. //      CDynaMenuDoc::OnColorOptions()       -- display color options dialog
  25. //
  26. //   These functions are implemented in dmdoc.cpp.
  27. // This is the number of possible text colors.  It should match the
  28. // number of checkboxes which appear in the color options dialog.
  29. const int NUM_TEXTCOLOR = 4;
  30. // This is the maximum length of a color name.
  31. const int MAX_COLORLEN = 20;
  32. // This structure defines the relationship between a color name,
  33. // menu ID, and COLORREF value.  By defining this array, we don't
  34. // depend on the menu IDs being in any particular order, or being
  35. // sequential.
  36. struct DynaMenuDef {
  37.    UINT     m_nString;                  // color name (in string table)
  38.    UINT     m_nID;                      // menu ID
  39.    COLORREF m_crf;                      // color value
  40. };
  41. /////////////////////////////////////////////////////////////////////////////
  42. // CDynaMenuDoc
  43. class CDynaMenuDoc : public CDocument
  44. {
  45. protected: // create from serialization only
  46. CDynaMenuDoc();
  47. DECLARE_DYNCREATE(CDynaMenuDoc)
  48. // Attributes
  49. public:
  50. int  m_iColor;                      // current text color
  51. BOOL m_abAllowColor[NUM_TEXTCOLOR]; // flags whether colors may be used
  52. // This array defines the possible text colors.  There is a one-to-one
  53. // correspondence with m_abAllowColor. m_iColor is an index into both arrays.
  54.    static DynaMenuDef m_aColorDef[NUM_TEXTCOLOR];
  55. // Operations
  56. public:
  57. static BOOL GetMessageString(UINT nID, CString& strMessage);
  58. // Implementation
  59. public:
  60. virtual ~CDynaMenuDoc();
  61. virtual void Serialize(CArchive& ar);   // overridden for document i/o
  62. virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra,
  63.   AFX_CMDHANDLERINFO* pHandlerInfo);
  64. #ifdef _DEBUG
  65. virtual void AssertValid() const;
  66. virtual void Dump(CDumpContext& dc) const;
  67. #endif
  68. protected:
  69. virtual BOOL OnNewDocument();
  70. void DoSelectColor(int iColor);
  71. void DoUpdateSelectColor(int iColor, CCmdUI* pExtra);
  72. // Generated message map functions
  73. protected:
  74. //{{AFX_MSG(CDynaMenuDoc)
  75. afx_msg void OnColorOptions();
  76. //}}AFX_MSG
  77. DECLARE_MESSAGE_MAP()
  78. };
  79. /////////////////////////////////////////////////////////////////////////////