#pragma once


/**
CExFrame クラス

	CExView とCExDocument を繋ぐためのフレームテンプレートクラス．

	マウス制御機能（簡易版）あり．  GetMousePos() （クライアント領域でのマウスの座標）
	デフォルトで最大化ボックスは無効である．
*/




#include  "MFCBase.h"
#include  "ExToolBar.h"


//
namespace jbxwl {




class   CExDocument;
class   CExView;
class   CExFrame;
class	CExToolBar;
class   CAppCallBack;




/////////////////////////////////////////////////////////////////////////////
// CExFrame フレーム

class CExFrame : public CMDIChildWnd
{
	DECLARE_DYNCREATE(CExFrame)

protected:
	CExFrame(); 


// アトリビュート
public:
	CString			Title;
	CString			preTitle;
	int				colorMode;			// データのカラータイプ（Doc<->View 受け渡し用）

	CExDocument*	pDoc;
	CExView*		pView;
	CAppCallBack*	pApp;
	CMultiDocTemplate*	pTempl;			// 自分を作り出したテンプレートへのポインタ．
	void*			anyData;

	CExToolBar*		toolBar;
	CScrollBar*		hScrollBar;
	CScrollBar*		vScrollBar;

	bool			doneErrorMessage;	// 既にこのテンプレートの，（致命的な）エラーメッセージの処理は行われている．
	bool			cancelOperation;	// オペレータにより，処理がキャンセルされた

	bool			reSizeMoving;		// ウィンドウはリサイズまたは移動中


// オペレーション
public:
	virtual void onLButtonDBLClick() {}


// オーバーライド
	//{{AFX_VIRTUAL(CExFrame)
	public:
		virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle=WS_CHILD|WS_VISIBLE|WS_OVERLAPPEDWINDOW|WS_CLIPCHILDREN, 
								const RECT& rect=rectDefault, CMDIFrameWnd* pParentWnd=NULL, CCreateContext* pContext=NULL);
	//}}AFX_VIRTUAL

// インプリメンテーション
public:
	virtual ~CExFrame();

protected:
	//{{AFX_MSG(CExFrame)
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
public:

#ifdef ON_WM_ENTERSIZEMOVE
	afx_msg void OnEnterSizeMove();									// for VS2008 over
	afx_msg void OnExitSizeMove();
#else
	afx_msg LRESULT OnEnterSizeMove(WPARAM wParam, LPARAM lParam);	// for VS2005
	afx_msg LRESULT OnExitSizeMove(WPARAM wParam, LPARAM lParam);
#endif
	afx_msg BOOL OnEraseBkgnd(CDC* pDC);
	afx_msg void OnSizing(UINT fwSide, LPRECT pRect);
};



/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}





}		// namespace