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;iIsKindOf(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(kKlevel) 
					{ 
						level-=1; 
						 istr=strlen(Rule); 
			    		for(j=0;jGetStyle() & WS_CHILD)
			pWndPopupOwner = pWndPopupOwner->GetParent();

		pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y,
			pWndPopupOwner);
	} 
}