|
|
1.1 root 1: #ifndef __VIEW_HXX_
2: #define __VIEW_HXX_
3:
4: #include "canvas.hxx"
5:
6: //--------------------------------------------------------------------
7: // File: View.hxx
8: //
9: // Classes:
10: // CView - Base class for Views
11: // CScrollaleView - Scrollable View
12: //
13: // CPrintCanvas - Device context for printing
14: // CPrintRequest - Print Job
15: //
16: // History: 22-Jan-1993 Asmusf Created
17: //
18: // Copyright (c) 1993 Microsoft Corp. All Rights reserved
19: //
20: //--------------------------------------------------------------------
21:
22: class CModel;
23:
24: //======== CView ============================================
25: class CView
26: {
27: public:
28: CView(int cx, int cy);
29: void SetSize( int cx, int cy);
30: BOOL Paint(CCanvas& canvas, CModel * _pModel, RECT rc);
31: UINT Hittest(CCanvas& canvas, POINT pt, CModel * _pModel);
32: void Invalidate(HWND hwnd, LPRECT lpRect=NULL);
33: protected:
34: void Scroll(CCanvas &canvas);
35: SIZE _size;
36: UINT _iScale;
37: POINT _ptOrg;
38: POINT _ptScroll;
39: POINT _ptClient;
40: };
41:
42: //======== CScrollableView ==================================
43: class CScrollableView : public CView
44: {
45: public:
46: CScrollableView(int cx, int cy):CView(cx,cy){};
47: void GetScale(UINT &iScale);
48: void SetScale(UINT iScale);
49: void SetVScrollPos(HWND hwnd, WPARAM wParam, LPARAM lParam,
50: CModel * pModel);
51: void SetHScrollPos(HWND hwnd, WPARAM wParam, LPARAM lParam,
52: CModel * pModel);
53: protected:
54: int _nHScrollPos;
55: int _nVScrollPos;
56: };
57:
58:
59: inline void CScrollableView::GetScale(UINT &iScale)
60: {
61: iScale=_iScale;
62: };
63:
64: inline void CScrollableView::SetScale(UINT iScale)
65: {
66: _iScale=iScale;
67: };
68:
69:
70: //======== CPrintRequest =======================================
71:
72: #define PREQ_SUCCESS NULL
73: #define PREQ_CANCEL 1
74: #define PREQ_USERABORT 2
75: #define PREQ_ERRENDPAGE 4
76: #define PREQ_ERRSTARTPAGE 8
77: #define PREQ_ERRSTARTDOC 16
78: #define PREQ_ERROR 32
79:
80:
81: class CPrintRequest
82: {
83: friend class CPrintCanvas;
84: public:
85: CPrintRequest(HWND hwnd, UINT minPage=1, UINT maxPage=1);
86: ~CPrintRequest();
87:
88: UINT Print(HINSTANCE hInst, CCanvas &canvas, CModel *pModel);
89: BOOL Cancelled() { return _status == PREQ_CANCEL; };
90: BOOL Error() { return _status != PREQ_SUCCESS; };
91:
92: protected:
93: HDC _hdc;
94: HWND _hwnd;
95: UINT _nFromPage;
96: UINT _nToPage;
97: UINT _status;
98: HANDLE _hDevNames;
99: CModel* _pModel;
100: CView * _pView;
101: };
102:
103:
104: //======== CPrintCanvas =======================================
105:
106: class CPrintCanvas : public CCanvas
107: {
108: public:
109: CPrintCanvas(CPrintRequest &pr)
110: {
111: Init(pr._hdc);
112: pr._hdc = 0;
113: }
114: ~CPrintCanvas()
115: {
116: DeleteDC(_hdc);
117: }
118: };
119:
120:
121: extern "C" {
122: BOOL CALLBACK PrintDlgProc
123: ( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam );
124:
125: BOOL CALLBACK AbortProc
126: (HDC hdcPrn, short nCode);
127: }
128:
129: class CPrintAux
130: {
131: friend class CPrintRequest;
132: friend BOOL CALLBACK PrintDlgProc
133: ( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam );
134: friend BOOL CALLBACK AbortProc (HDC hdcPrn, short nCode);
135:
136: BOOL _bUserAbort;
137: HWND _hDlgPrint;
138: };
139:
140:
141:
142: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.