// WSCheck.cpp : implementation file // #include "stdafx.h" #include "minidev.h" #include "WSCheck.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CWSCheckView IMPLEMENT_DYNCREATE(CWSCheckView, CFormView) CWSCheckView::CWSCheckView() : CFormView(CWSCheckView::IDD) { //{{AFX_DATA_INIT(CWSCheckView) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT } CWSCheckView::~CWSCheckView() { } void CWSCheckView::DoDataExchange(CDataExchange* pDX) { CFormView::DoDataExchange(pDX); //{{AFX_DATA_MAP(CWSCheckView) DDX_Control(pDX, IDC_ErrWrnLstBox, m_lstErrWrn); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CWSCheckView, CFormView) //{{AFX_MSG_MAP(CWSCheckView) ON_LBN_DBLCLK(IDC_ErrWrnLstBox, OnDblclkErrWrnLstBox) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CWSCheckView diagnostics #ifdef _DEBUG void CWSCheckView::AssertValid() const { CFormView::AssertValid(); } void CWSCheckView::Dump(CDumpContext& dc) const { CFormView::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CWSCheckView message handlers void CWSCheckView::OnDblclkErrWrnLstBox() { // TODO: Add your control notification handler code here } /****************************************************************************** CWSCheckView::OnInitialUpdate Resize the frame to better fit the visible controls in it. ******************************************************************************/ void CWSCheckView::OnInitialUpdate() { CRect crtxt ; // Coordinates of list box label CRect crlbfrm ; // Coordinates of list box and frame CFormView::OnInitialUpdate() ; // Get the dimensions of the list box label HWND hlblhandle ; GetDlgItem(IDC_WSCLabel, &hlblhandle) ; ::GetWindowRect(hlblhandle, crtxt) ; crtxt.NormalizeRect() ; // Get the dimensions of the list box and then add the height of the label // to those dimensions. m_lstErrWrn.GetWindowRect(crlbfrm) ; crlbfrm.bottom += crtxt.Height() ; // Make sure the frame is big enough for these 2 controls plus a little bit // more. crlbfrm.right += 40 ; crlbfrm.bottom += 40 ; GetParentFrame()->CalcWindowRect(crlbfrm) ; GetParentFrame()->SetWindowPos(NULL, 0, 0, crlbfrm.Width(), crlbfrm.Height(), SWP_NOZORDER | SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOACTIVATE) ; /* CRect crPropertySheet; m_cps.GetWindowRect(crPropertySheet); crPropertySheet -= crPropertySheet.TopLeft(); m_cps.MoveWindow(crPropertySheet, FALSE); // Position property sheet within the // child frame GetParentFrame()->CalcWindowRect(crPropertySheet); GetParentFrame()->SetWindowPos(NULL, 0, 0, crPropertySheet.Width(), crPropertySheet.Height(), SWP_NOZORDER | SWP_NOMOVE | SWP_NOOWNERZORDER | SWP_NOACTIVATE); */ } /****************************************************************************** CWSCheckView::PostWSCMsg Add an error or warning message along with its associated Project Node pointer to the list box. ******************************************************************************/ void CWSCheckView::PostWSCMsg(CString& csmsg, CProjectNode* ppn) { int n = m_lstErrWrn.AddString(csmsg) ; m_lstErrWrn.SetItemData(n, (DWORD) PtrToUlong(ppn)) ; } /****************************************************************************** CWSCheckView::DeleteAllMessages Delete all of the messages in the list box. ******************************************************************************/ void CWSCheckView::DeleteAllMessages(void) { m_lstErrWrn.ResetContent() ; } ///////////////////////////////////////////////////////////////////////////// // CWSCheckDoc IMPLEMENT_DYNCREATE(CWSCheckDoc, CDocument) CWSCheckDoc::CWSCheckDoc() { } /****************************************************************************** CWSCheckDoc::CWSCheckDoc This is the only form of the constructor that should be called. It will save a pointer the class that created it. ******************************************************************************/ CWSCheckDoc::CWSCheckDoc(CDriverResources* pcdr) { m_pcdrOwner = pcdr ; } CWSCheckDoc::~CWSCheckDoc() { } BOOL CWSCheckDoc::OnNewDocument() { if (!CDocument::OnNewDocument()) return FALSE; return TRUE; } /****************************************************************************** CWSCheckDoc::PostWSCMsg Pass the specified request on to what should be the one and only view attached to this document. ******************************************************************************/ void CWSCheckDoc::PostWSCMsg(CString& csmsg, CProjectNode* ppn) { POSITION pos = GetFirstViewPosition() ; if (pos != NULL) { CWSCheckView* pwscv = (CWSCheckView *) GetNextView(pos) ; pwscv->PostWSCMsg(csmsg, ppn) ; pwscv->UpdateWindow() ; } ; } /****************************************************************************** CWSCheckDoc::DeleteAllMessages Pass the specified request on to what should be the one and only view attached to this document. ******************************************************************************/ void CWSCheckDoc::DeleteAllMessages(void) { POSITION pos = GetFirstViewPosition() ; if (pos != NULL) { CWSCheckView* pwscv = (CWSCheckView *) GetNextView(pos) ; pwscv->DeleteAllMessages() ; pwscv->UpdateWindow() ; } ; } BEGIN_MESSAGE_MAP(CWSCheckDoc, CDocument) //{{AFX_MSG_MAP(CWSCheckDoc) // NOTE - the ClassWizard will add and remove mapping macros here. //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CWSCheckDoc diagnostics #ifdef _DEBUG void CWSCheckDoc::AssertValid() const { CDocument::AssertValid(); } void CWSCheckDoc::Dump(CDumpContext& dc) const { CDocument::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CWSCheckDoc serialization void CWSCheckDoc::Serialize(CArchive& ar) { if (ar.IsStoring()) { // TODO: add storing code here } else { // TODO: add loading code here } }