www.pudn.com > DolbySOphia.rar > DOLView.cpp
// DOLView.cpp : implementation of the CDOLView class // #include "stdafx.h" #include "DOL.h" #include#include"SetDlg.h" #include "DOLDoc.h" #include "DOLView.h" #define MAXN 100 #define TSMAX 8 #define pi 3.1415926 #include #include #include "resource.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CDOLView IMPLEMENT_DYNCREATE(CDOLView, CView) BEGIN_MESSAGE_MAP(CDOLView, CView) ON_WM_CONTEXTMENU() //{{AFX_MSG_MAP(CDOLView) ON_COMMAND(ID_draw, Ondraw) ON_COMMAND(ID_selectcolor, Onselectcolor) //}}AFX_MSG_MAP // Standard printing commands ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CDOLView construction/destruction CDOLView::CDOLView() { // TODO: add construction code here m_pColor=RGB(150,0,0); } CDOLView::~CDOLView() { } BOOL CDOLView::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs return CView::PreCreateWindow(cs); } ///////////////////////////////////////////////////////////////////////////// // CDOLView drawing void CDOLView::OnDraw(CDC* pDC) { CDOLDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); // TODO: add draw code for native data here TurDir=0; TSSize=0; if(drawtrue==1) { int i; float s; s=5.0; for(i=0;i IsKindOf(RUNTIME_CLASS(CDOLDoc))); return (CDOLDoc*)m_pDocument; } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CDOLView message handlers void CDOLView::TurState(char Command) { int x0,y0; CClientDC dc(this); CPen newpen; newpen.CreatePen(PS_SOLID,1,m_pColor); CPen *pOriginpen; pOriginpen=dc.SelectObject(&newpen); if(Command=='F') { x0=int(Turx); y0=int(Tury); Turx=float(Turx+1.5*stan*sin(TurDir*that*pi/180 )); Tury=float(Tury-stan*cos(TurDir*that*pi/180 )); // if(Command=='F') { dc.MoveTo(x0 ,y0 ); dc.LineTo(int(Turx),int(Tury)); } //// else {//dc.MoveTo(Turx,Tury); // y0=int(Tury); // } } else if (Command=='+'){TurDir=TurDir-1;} else if (Command=='-'){TurDir=TurDir+1;} else if(Command=='[') {if(TSSize==TSMAX) { cout<<"ERRor\n"; exit(0); } TSX[TSSize]=Turx; TSY[TSSize]=Tury; TSDir[TSSize]=TurDir; TSSize+=1; } else if(Command==']') {if(TSSize==0) { cout<<"ERROr\n"; exit(0);} TSSize-=1; Turx=TSX[TSSize]; Tury=TSY[TSSize]; TurDir=TSDir[TSSize]; // dc.MoveTo(Turx,Tury); x0=int(Turx); y0=int(Tury); } dc.SelectObject(pOriginpen); } //void CDOLView::Draw(char str[20],int level) void CDOLView::Draw(CString str ,int level) { int istr,j,k; k=0; //while(str[k]!='\0') while(k Klevel) { level-=1; istr=strlen(Rule); for(j=0;j GetStyle() & WS_CHILD) pWndPopupOwner = pWndPopupOwner->GetParent(); pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, pWndPopupOwner); } }