Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторная работа 21 / Sketcher05 / SketcherDoc
.h// SketcherDoc.h : interface of the CSketcherDoc class
//
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_SKETCHERDOC_H__623441AB_57EA_11D0_9257_00201834E2A3__INCLUDED_)
#define AFX_SKETCHERDOC_H__623441AB_57EA_11D0_9257_00201834E2A3__INCLUDED_
#include "Hash.h"
#include "utils.h"
class CSketcherDoc : public CDocument{
protected: // create from serialization only
CSketcherDoc();
DECLARE_DYNCREATE(CSketcherDoc)
// Attributes
public:
protected:
COLORREF m_Color; // Current drawing color
WORD m_Element; // Current element type
CSize m_DocSize; // Document size
Hash<stringKey, CElement*> m_Hash;
// Operations
public:
WORD GetElementType(){ // Get the element type
return m_Element;
}
COLORREF GetElementColor(){ // Get the element color
return m_Color;
}
Hash<stringKey, CElement*>::iterator& getHashIterator(){
return m_Hash.getIterator();
}
Hash<stringKey, CElement*>::iterator getHashStart(){
return m_Hash.begin();
}
Hash<stringKey, CElement*>::iterator getHashEnd(){
return m_Hash.end();
}
Hash<stringKey, CElement*>::iterator findElement(string key){
return m_Hash.find(stringKey(key));
}
bool AddElement(CElement* pElement, string key) { // Add an element to the list
pair<Hash<stringKey, CElement*>::iterator, bool> res = m_Hash.put(stringKey(key), pElement);
return res.second;
}
CSize GetDocSize() { // Retrieve the document size
return m_DocSize;
}
void DeleteElement(string key); // Delete an element
void SendToBack(CElement* pElement); // Send element to start of list
CRect GetDocExtent(); // Get the bounding rectangle for the whole document
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CSketcherDoc)
public:
virtual BOOL OnNewDocument();
virtual void Serialize(CArchive& ar);
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CSketcherDoc();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
// Generated message map functions
protected:
//{{AFX_MSG(CSketcherDoc)
afx_msg void OnColorBlack();
afx_msg void OnColorRed();
afx_msg void OnElementLine();
afx_msg void OnElementRectangle();
afx_msg void OnUpdateColorBlack(CCmdUI* pCmdUI);
afx_msg void OnUpdateElementLine(CCmdUI* pCmdUI);
afx_msg void OnUpdateElementRectangle(CCmdUI* pCmdUI);
afx_msg void OnUpdateColorBlue(CCmdUI* pCmdUI);
afx_msg void OnColorBlue();
afx_msg void OnElementText();
afx_msg void OnUpdateElementText(CCmdUI* pCmdUI);
afx_msg void OnElementTextintriangle();
afx_msg void OnUpdateElementTextintriangle(CCmdUI* pCmdUI);
afx_msg void OnElementTriangle();
afx_msg void OnUpdateElementTriangle(CCmdUI* pCmdUI);
afx_msg void OnUpdateColorGreen(CCmdUI* pCmdUI);
afx_msg void OnColorGreen();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_SKETCHERDOC_H__623441AB_57EA_11D0_9257_00201834E2A3__INCLUDED_)
Соседние файлы в папке Sketcher05