1 #include <afxwin.h>

  2 #include "resource.h"

  3 #include "MyView.h"

  4 #include "MyDoc.h"

  5 
  6 IMPLEMENT_DYNCREATE(CMyDoc,CDocument)
  7 BEGIN_MESSAGE_MAP (CMyDoc, CDocument)

  9 ON_COMMAND (IDM_FILE_NEW,OnNew)
 10 
 11 ON_COMMAND_RANGE (IDM_BREITE_KRASSDUENN, IDM_BREITE_SEHR_DICK, OnBreite )	//von krassduenn - sehrdick wird OnBreite() aufgerufen

 12 ON_COMMAND_RANGE (IDM_FARBE_SCHWARZ, IDM_FARBE_WEISS, OnFarbe )
 13 ON_COMMAND_RANGE (IDM_FIGUR_LINIE, IDM_FIGUR_ELLIPSE, OnFigur )
 14 
 15 ON_UPDATE_COMMAND_UI_RANGE (IDM_BREITE_KRASSDUENN, IDM_BREITE_SEHR_DICK, OnUpdateBreiteUI ) //wird bei neuzeichnen des menues aufgerufen

 16 ON_UPDATE_COMMAND_UI_RANGE (IDM_FARBE_SCHWARZ, IDM_FARBE_WEISS, OnUpdateFarbeUI )
 17 ON_UPDATE_COMMAND_UI_RANGE (IDM_FIGUR_LINIE, IDM_FIGUR_ELLIPSE, OnUpdateFigurUI )
 18 
 19 END_MESSAGE_MAP()
 20 
 21 //*************************************************************************************

 22 //Function: Konstruktor

 23 //Return value: none

 24 //description: initialisierung und werte vorbelegen (ginge auch über die .rc)

 25 //*************************************************************************************

 26 CMyDoc :: CMyDoc()
 27 {
 28     m_farbe		= IDM_FARBE_SCHWARZ;
 29     m_breite	= IDM_BREITE_KRASSDUENN;
 30     m_figur		= IDM_FIGUR_LINIE;
 31 
 32     m_akt_breite = 1;
 33     m_akt_farbe = RGB(0,0,0);
 34     m_akt_figur = IDM_FIGUR_LINIE;
 35 }
 36 //*************************************************************************************

 37 //Function: OnNewDocument

 38 //Return value: none

 39 //description: wird aufgerufen, wenn eine neue zeichenfläche generiert werden soll.

 40 //             nachricht wird von der aktiven view zuerst an das dokument geschickt

 41 //*************************************************************************************

 42 void CMyDoc::OnNew()
 43 {
 44     if(!CDocument::OnNewDocument() )	//muss drin sein, da beim erzeugen des ersten fensters, die basisklasse aufgerufen wird

 45         return;// FALSE;

 46     if(!pArray.IsEmpty() )
 47     {
 48         pArray.RemoveAll();
 49         UpdateAllViews(NULL);
 50     }
 51 
 52     return; //TRUE;

 53 }
 54 
 55 void CMyDoc::OnExit()
 56 {
 57     //SendMessage(WM_CLOSE,0,0);

 58 }
 59 //*************************************************************************************

 60 //Function: Array

 61 //Return value: none

 62 //description: initialisiert 8 farbwerte

 63 //*************************************************************************************

 64 const COLORREF CMyDoc :: crColors[8]=
 65     {
 66         RGB(0,0,0),
 67         RGB(255,0,0),
 68         RGB(0,0,255),
 69         RGB(255,255,0),
 70         RGB(0,255,0),
 71         RGB(255,0,255),
 72         RGB(0,255,255),
 73         RGB(255,255,255)
 74     };
 75 //*************************************************************************************

 76 //Function: Array

 77 //Return value:none

 78 //description: initialisiert 6 breitenwerte zur verwendung mit einem stift (Pen)

 79 //*************************************************************************************

 80 const UINT CMyDoc::uiBreite[6]=
 81     {
 82         1,
 83         8,
 84         16,
 85         24,
 86         32,
 87         64
 88     };
 89 
 90 //*************************************************************************************

 91 //Function: OnBreite()

 92 //Return value: void

 93 //description: setzt neue breite, die ausgewählt wurde (menue) und akt.breite, wird aber

 94 //             noch nicht gezeichnet

 95 //*************************************************************************************

 96 void CMyDoc :: OnBreite(UINT ID)
 97 {
 98     m_breite = ID;
 99     m_akt_breite = uiBreite[ID - IDM_BREITE_KRASSDUENN ];
100 }
101 
102 //*************************************************************************************

103 //Function: OnFarbe()

104 //Return value: void

105 //description:setzt neue farbe, die ausgewählt wurde (menue) und akt.farbe, wird aber

106 //            noch nicht gezeichnet

107 //*************************************************************************************

108 void CMyDoc :: OnFarbe(UINT ID)
109 {
110     m_farbe = ID;
111     m_akt_farbe = crColors[ID - IDM_FARBE_SCHWARZ];
112 }
113 
114 //*************************************************************************************

115 //Function:OnFigur()

116 //Return value: void

117 //description:setzt neue figur, die ausgewählt wurde (menue) und akt.figur, wird aber

118 // 			noch nicht gezeichnet

119 //*************************************************************************************

120 void CMyDoc :: OnFigur(UINT ID)
121 {
122     m_figur = ID;
123     m_akt_figur = ID;
124 }
125 //*************************************************************************************

126 //Function: OnUpdateBreiteUI()

127 //Return value: void

128 //description: die funktion setzt nun sichtbar den neuen hacken im auswahlmenue

129 //*************************************************************************************

130 void CMyDoc::OnUpdateBreiteUI(CCmdUI *pCmdUI)
131 {
132     pCmdUI->SetCheck(pCmdUI->m_nID == m_breite );
133 }
134 
135 //*************************************************************************************

136 //Function: OnUpdateFarbeUI

137 //Return value: void

138 //description: die funktion setzt nun sichtbar den neuen hacken im auswahlmenue

139 //*************************************************************************************

140 void CMyDoc::OnUpdateFarbeUI(CCmdUI *pCmdUI)
141 {
142     pCmdUI->SetCheck(pCmdUI->m_nID == m_farbe );
143 }
144 
145 //*************************************************************************************

146 //Function: OnUpdateFigurUI

147 //Return value: void

148 //description: die funktion setzt nun sichtbar den neuen hacken im auswahlmenue

149 //*************************************************************************************

150 void CMyDoc::OnUpdateFigurUI(CCmdUI *pCmdUI)
151 {
152     pCmdUI->SetCheck(pCmdUI->m_nID == m_figur );
153 }
154 


syntax highlighted by Code2HTML, v. 0.9.1