//////////////////////////////////////////////////////////////////////// // dctstwnv.cpp // Source for the TDoctestWindowView class //////////////////////////////////////////////////////////////////////// #include #include "dctstapp.h" //Header for TDoctestApp #include "dctstptd.h" //Header for TPointsDocuement #include "dctstwnv.h" //Header for TDoctestWindowView //{{TDoctestWindowView Implementation}} DEFINE_RESPONSE_TABLE1(TDoctestWindowView,TWindowView) EV_WM_LBUTTONDOWN, EV_COMMAND(CM_NOVIEW, EvNoView), END_RESPONSE_TABLE; //-------------------------------------------------------- // TDoctestWindowView // ~~~~~~~~~~ // Construction/Destruction handling. // TDoctestWindowView::TDoctestWindowView(TPointsDocument& doc, TWindow* parent) :TWindowView(doc, parent) { if (::FindResource(*GetModule(), TResId(IDM_DTWINDOWVIEW), RT_MENU)) SetViewMenu(new TMenuDescr(IDM_DTWINDOWVIEW, 0,1,0,0,0,1, GetModule())); } void TDoctestWindowView::EvLButtonDown (uint, TPoint& point){ ostrstream os; TClientDC dc(*this); os << point.x << "," << point.y << ends; dc.TextOut(point, os.str(), strlen(os.str())); TPointsDocument* p1 = dynamic_cast(Doc); p1->pSet->Add(point); delete[] os.str(); } void TDoctestWindowView::Paint(TDC& dc, bool, TRect&){ TPointsDocument* p1 = dynamic_cast(Doc); TPointsIterator i(*(p1->pSet)); TPoint p; while (i){ ostrstream os; p = i++ ; os << p.x << "," << p.y << ends; dc.MoveTo(p); dc.TextOut(p,os.str(), strlen(os.str())); delete[] os.str(); } } void TDoctestWindowView::EvNoView(){ delete this; }