00001
00002
00003
00004
00005 #include "ExFrame.h"
00006
00007
00008 #ifdef _DEBUG
00009 #define new DEBUG_NEW
00010 #undef THIS_FILE
00011 static char THIS_FILE[] = __FILE__;
00012 #endif
00013
00014
00015 using namespace jbxwl;
00016
00017
00018
00020
00021
00022 IMPLEMENT_DYNCREATE(CExFrame, CMDIChildWnd)
00023
00024
00025 CExFrame::CExFrame()
00026 {
00027
00028
00029 pDoc = NULL;
00030 pView = NULL;
00031 pApp = NULL;
00032 pTempl = NULL;
00033 anyData = NULL;
00034
00035 toolBar = NULL;
00036 vScrollBar = NULL;
00037 hScrollBar = NULL;
00038
00039 Title = _T("");
00040 preTitle = _T("");
00041 colorMode = GRAPH_COLOR_MONO;
00042
00043 cancelOperation = false;
00044 doneErrorMessage = false;
00045
00046 reSizeMoving = false;
00047 }
00048
00049
00050
00051 CExFrame::~CExFrame()
00052 {
00053 DEBUG_INFO("DESTRUCTOR: CExFrame\n");
00054
00055 if (pApp!=NULL) {
00056 DEBUG_INFO("Call Application FrameDestructor()\n");
00057 pApp->FrameDestructor(this);
00058 }
00059
00060 if (!isNull(pView)) pView->pFrame = NULL;
00061 if (!isNull(pDoc)) pDoc->pFrame = NULL;
00062 pView = NULL;
00063 pDoc = NULL;
00064 }
00065
00066
00067
00068
00069
00070 BEGIN_MESSAGE_MAP(CExFrame, CMDIChildWnd)
00071
00072
00073
00074 #ifdef ON_WM_ENTERSIZEMOVE
00075 ON_WM_ENTERSIZEMOVE()
00076 ON_WM_EXITSIZEMOVE()
00077 #else
00078 ON_MESSAGE(WM_ENTERSIZEMOVE, OnEnterSizeMove)
00079 ON_MESSAGE(WM_EXITSIZEMOVE, OnExitSizeMove)
00080 #endif
00081 ON_WM_ERASEBKGND()
00082 ON_WM_SIZING()
00083 END_MESSAGE_MAP()
00084
00085
00086
00087
00089
00090
00091 BOOL CExFrame::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CMDIFrameWnd* pParentWnd, CCreateContext* pContext)
00092 {
00093 dwStyle = dwStyle | WS_CLIPCHILDREN;
00094 dwStyle = dwStyle & (~WS_MAXIMIZEBOX);
00095 return CMDIChildWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, pContext);
00096 }
00097
00098
00099
00100 #ifdef ON_WM_ENTERSIZEMOVE
00101
00102 void CExFrame::OnEnterSizeMove()
00103 {
00104 CMDIChildWnd::OnEnterSizeMove();
00105 reSizeMoving = true;
00106 }
00107
00108
00109 void CExFrame::OnExitSizeMove()
00110 {
00111 CMDIChildWnd::OnExitSizeMove();
00112 reSizeMoving = false;
00113 }
00114
00115 #else
00116
00117 LRESULT CExFrame::OnEnterSizeMove(WPARAM wParam, LPARAM lParam)
00118 {
00119 reSizeMoving = true;
00120 return 0;
00121 }
00122
00123
00124 LRESULT CExFrame::OnExitSizeMove(WPARAM wParam, LPARAM lParam)
00125 {
00126 reSizeMoving = false;
00127 return 0;
00128 }
00129
00130 #endif
00131
00132
00133
00134
00135 BOOL CExFrame::OnEraseBkgnd(CDC* pDC)
00136 {
00137
00138 return CMDIChildWnd::OnEraseBkgnd(pDC);
00139 }
00140
00141
00142
00143 void CExFrame::OnSizing(UINT fwSide, LPRECT pRect)
00144 {
00145 POINT pt;
00146 pt.x = pRect->right - pRect->left + 1;
00147 pt.y = pRect->bottom - pRect->top + 1;
00148
00149 pt = pView->GetClientSize(pt);
00150 pt = pView->GetWindowReSize(pt);
00151 pt = pView->GetWindowSize(pt);
00152
00153 pRect->right = pRect->left + pt.x - 1;
00154 pRect->bottom = pRect->top + pt.y - 1;
00155 CMDIChildWnd::OnSizing(fwSide, pRect);
00156
00157 pView->doReSize = true;
00158 }
00159