JunkBox_Win_Lib 1.5.3
Loading...
Searching...
No Matches
ExView.h
Go to the documentation of this file.
1#pragma once
2
3#include "MFCBase.h"
4
5
39#define VIEW_8_MAX 255
40#define VIEW_8_MIN 0
41
42#define VIEW_ZDIR 0
43#define VIEW_XDIR 1
44#define VIEW_YDIR 2
45
46
47//
48namespace jbxwl {
49
50using namespace jbxl;
51
52
53extern UINT TimerID;
54
55class CExDocument;
56class CExView;
57class CExFrame;
58class CAppCallBack;
59
60
62// CExView ビュー
63
64class CExView : public CView
65{
66protected:
67 CExView(); // 動的生成に使用されるプロテクト コンストラクタ
69
70// アトリビュート
71public:
72 ExCmnHead viewData; // 表示用.メモリ管理無しでの使用が前提.xsize, ysizeは偶数にすべき(どうしてだっけ?).
73 ExCmnHead cmnHead; // pDoc->cmnHead への参照用.
74 ExMSGraph<sWord> msGraph; // pDoc->msGraph への参照用.
75
79 void* anyData;
80
82
84
85 RECT clientRect; // クライアント領域
86 double sizeXYRate; // クライアント領域のサイズ(全体)の縦横比率 (Y/X).下位クラスで定義する必要がある.
87 double clientRate; // クライアント領域の倍率(X方向を基準にする)
88 double sizeFac; // オブジェクトのサイズの倍率 (3D Renderで使用)
89
90 int xsize; // 表示用 Xサイズ.偶数にすべき(?).
91 int ysize; // 表示用 Yサイズ.偶数にすべき(?).
92 int zsize; // 表示用 Zサイズ.
93
94 int origXSize; // 本来の画像を表示した場合の Xサイズ.下位クラスで定義する必要がある.
95 int origYSize; // 本来の画像を表示した場合の Yサイズ.下位クラスで定義する必要がある.
96 int initXSize; // 最初に表示された時のクライアント領域の Xサイズ
97 int initYSize; // 最初に表示された時のクライアント領域の Yサイズ
98 int prevXSize; // 直前のクライアント領域の Xサイズ
99 int prevYSize; // 直前のクライアント領域の Yサイズ
100
101 bool cnstSize; // ウィンドウサイズ固定か?
102 bool cnstXSize; // ウィンドウのXサイズ固定か?
103 bool cnstYSize; // ウィンドウのYサイズ固定か?
104 bool cnstXYRate; // ウィンドウは sizeXYRate依存
105 int maxXSize; // ウィンドウの最大Xサイズ
106 int maxYSize; // ウィンドウの最大Yサイズ
107
108 int vSBpos; // Vert Scroll の位置
109 int prevSBpos; // Vert Scroll の直前の位置
110 int vSBmax; // Vert Scroll の最大値
111 int vSBntch; // Vert Scroll の刻み幅
112 bool vSBctrl; // Vert Scroll のコントロール.スクロールを許可するか?
113 int viewMode; // Z, X, Y方向から見る
114 int colorMode; // カラーモード
115
116 int cMax; // コントラストの最大値(可変)
117 int cMin; // コントラストの最小値(可変)
118 int vMax; // 源データの最大値(固定)
119 int vMin; // 源データの最小値(固定)
120
121 bool doReSize; // ウィンドウのリサイズ許可
122
123protected:
124 int timerID; // タイマー識別子
125 bool ctrlMouse; // マウスで制御可能か
126 bool activeWin; // ウィンドウはアクティブか?
127
128// オペレーション
129public:
131 virtual int GetMouseButton(){return 0;} // CDxBaseClassで実装.ここで実装できたら,CDxBaseClassでの実装を削除して virtual をはずす.
132
133 POINT SetWindowSize(int xs, int ys, BOOL first=TRUE); // クライアントサイズを指定して,ウィンドを配置する.
134 POINT GetWindowSize(POINT pt); // クライアントサイズから,ウィンドウサイズを得る.
135 POINT GetClientSize(POINT pt); // ウィンドウサイズから,クライアントサイズを得る.
136 POINT GetWindowReSize(POINT pt); // ウィンドウのサイズを条件に合わせて再計算する
137 POINT ExecWindowReSize(int xs, int ys); // ウィンドウを条件に合わせてリサイズする
138 void SetTitle(LPCTSTR title);
139
140 virtual POINT GetWindowDisplaySize(POINT pt) { return pt;} // ウィンドウが画面に収まるように大きさを再計算する
141 virtual BOOL SetNewSurface(int ovsbpos=0) { return TRUE;} // OnVScroll(), OnMouseWheel()の中でサーフェイスを獲得し直す.
142 virtual void TimerStart(int tm=40) { timerID = TimerID++; SetTimer(timerID, tm, NULL);}
143 virtual void TimerStop() { KillTimer(timerID); timerID = -1; }
144 virtual void ExecRender() {}
145
146 // オーバーライド
147
148 //{{AFX_VIRTUAL(CExView)
149public:
150 virtual void OnInitialUpdate();
151 virtual void OnDraw(CDC* pDC);
152
153protected:
154 virtual void OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView);
155 //}}AFX_VIRTUAL
156
157// インプリメンテーション
158public:
159 virtual ~CExView();
160
161protected:
162#ifdef _DEBUG
163 virtual void AssertValid() const;
164 virtual void Dump(CDumpContext& dc) const;
165#endif
166
167protected:
168 //{{AFX_MSG(CExView)
169 afx_msg void OnSize(UINT nType, int cx, int cy);
172 //}}AFX_MSG
174public:
177};
178
179
180
182
183//{{AFX_INSERT_LOCATION}}
184
185
186} // namespace
ExCmnHead cmnHead
Definition ExView.h:73
CString Title
Definition ExView.h:83
int prevYSize
Definition ExView.h:99
afx_msg BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
Definition ExView.cpp:325
virtual void OnActivateView(BOOL bActivate, CView *pActivateView, CView *pDeactiveView)
Definition ExView.cpp:396
virtual void OnDraw(CDC *pDC)
Definition ExView.cpp:385
virtual void OnInitialUpdate()
Definition ExView.cpp:365
BOOL hasViewData
Definition ExView.h:81
int prevXSize
Definition ExView.h:98
virtual int GetMouseButton()
Definition ExView.h:131
virtual void TimerStart(int tm=40)
Definition ExView.h:142
ExCmnHead viewData
Definition ExView.h:72
int initYSize
Definition ExView.h:97
bool ctrlMouse
Definition ExView.h:125
int initXSize
Definition ExView.h:96
int origYSize
Definition ExView.h:95
POINT ExecWindowReSize(int xs, int ys)
Definition ExView.cpp:276
POINT GetWindowReSize(POINT pt)
Definition ExView.cpp:237
afx_msg void OnSize(UINT nType, int cx, int cy)
Definition ExView.cpp:410
virtual ~CExView()
Definition ExView.cpp:90
POINT GetWindowSize(POINT pt)
Definition ExView.cpp:205
afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar *pScrollBar)
Definition ExView.cpp:440
CExFrame * pFrame
Definition ExView.h:77
CAppCallBack * pApp
Definition ExView.h:78
afx_msg void OnTimer(UINT_PTR nIDEvent)
Definition ExView.cpp:427
bool cnstSize
Definition ExView.h:101
double sizeXYRate
Definition ExView.h:86
bool cnstXYRate
Definition ExView.h:104
int origXSize
Definition ExView.h:94
RECT clientRect
Definition ExView.h:85
void SetTitle(LPCTSTR title)
Definition ExView.cpp:348
virtual POINT GetWindowDisplaySize(POINT pt)
Definition ExView.h:140
POINT GetClientSize(POINT pt)
Definition ExView.cpp:222
bool activeWin
Definition ExView.h:126
void * anyData
Definition ExView.h:79
bool doReSize
Definition ExView.h:121
bool cnstXSize
Definition ExView.h:102
CExDocument * pDoc
Definition ExView.h:76
virtual void TimerStop()
Definition ExView.h:143
ExMSGraph< sWord > msGraph
Definition ExView.h:74
virtual void AssertValid() const
Definition ExView.cpp:130
POINT GetMousePos()
Definition ExView.cpp:303
double sizeFac
Definition ExView.h:88
virtual void Dump(CDumpContext &dc) const
Definition ExView.cpp:136
virtual void ExecRender()
Definition ExView.h:144
bool cnstYSize
Definition ExView.h:103
POINT SetWindowSize(int xs, int ys, BOOL first=TRUE)
Definition ExView.cpp:156
afx_msg BOOL OnEraseBkgnd(CDC *pDC)
Definition ExView.cpp:420
virtual BOOL SetNewSurface(int ovsbpos=0)
Definition ExView.h:141
double clientRate
Definition ExView.h:87
UINT TimerID
Definition ExView.cpp:19