⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filmdesignview.cpp

📁 This is my assignment for my tutor s Class. and many problems exist,so you should comprhend it and i
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// FilmDesignView.cpp : implementation of the CFilmDesignView class
//

#include "stdafx.h"
#include "FilmDesign.h"
//#include "dibapi.h"
#include "ShowDataDlg.h"
#include "FilmDesignDoc.h"
#include "FilmDesignView.h"
#include "AxisDlg.h"
#include "ThicknessKindSet.h"
#include "Parameter.h"
#include "LineParameter.h"
#include "ShowData.h"
#include "Read.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define PI 3.1415926

/////////////////////////////////////////////////////////////////////////////
// CFilmDesignView

IMPLEMENT_DYNCREATE(CFilmDesignView, CView)

BEGIN_MESSAGE_MAP(CFilmDesignView, CView)
	//{{AFX_MSG_MAP(CFilmDesignView)
	ON_WM_LBUTTONDOWN()
	ON_COMMAND(ID_SET_AXIS, OnSetAxis)
	ON_WM_LBUTTONDBLCLK()
	ON_COMMAND(ID_THICKNESSKIND, OnThicknesskind)
	ON_COMMAND(ID_DRAW_PARAMETER, OnDrawParameter)
	ON_COMMAND(ID_DRAW_PROPERTY, OnDrawProperty)
	ON_WM_MOUSEMOVE()
	ON_COMMAND(ID_LINE_PARAMETER, OnLineParameter)
	ON_COMMAND(ID_DATA_TABLE, OnDataTable)
	ON_COMMAND(ID_FILE_OPEN, OnFileOpen)
	ON_COMMAND(ID_COPY_VIEW, OnCopyView)
	ON_COMMAND(ID_FILE_SAVE, OnFileSave)
	ON_WM_VSCROLL()
	ON_COMMAND(ID_THICKNE_OTOP, OnThickneOtop)
	ON_UPDATE_COMMAND_UI(ID_THICKNE_OTOP, OnUpdateThickneOtop)
	ON_COMMAND(ID_THICKNESS_PTOO, OnThicknessPtoo)
	ON_UPDATE_COMMAND_UI(ID_THICKNESS_PTOO, OnUpdateThicknessPtoo)
	ON_COMMAND(ID_SYSTEM_NEW, OnSystemNew)
	//}}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()

/////////////////////////////////////////////////////////////////////////////
// CFilmDesignView construction/destruction

CFilmDesignView::CFilmDesignView()
{
//	CMenu* mmenu = GetMenu();
  //  CMenu* submenu = mmenu->GetSubMenu(0);
   // submenu->EnableMenuItem(ID_FILE_NEW, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);

	


}

CFilmDesignView::~CFilmDesignView()
{
}

BOOL CFilmDesignView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs
		

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CFilmDesignView drawing

void CFilmDesignView::OnDraw(CDC* pDC)
{   
	CFilmDesignDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	CRect rect;
	GetClientRect(&rect);

   	m_Picture.GetAxis().Draw(pDC,rect);//do axis

    //Draw Shape
	int kind=m_Picture.GetShapeofkind();
	m_Picture.DrawPicture(pDC,kind);
	


  	

}

/////////////////////////////////////////////////////////////////////////////
// CFilmDesignView printing

BOOL CFilmDesignView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CFilmDesignView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CFilmDesignView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CFilmDesignView diagnostics

#ifdef _DEBUG
void CFilmDesignView::AssertValid() const
{
	CView::AssertValid();
}

void CFilmDesignView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CFilmDesignDoc* CFilmDesignView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CFilmDesignDoc)));
	return (CFilmDesignDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CFilmDesignView message handlers



void CFilmDesignView::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	
	CView::OnLButtonDown(nFlags, point);
}



void CFilmDesignView::OnSetAxis() 
{
	// TODO: Add your command handler code here
	CAxisDlg dlg;
	dlg.m_Axis_Startx=m_Picture.GetAxis().GetMinx();
	dlg.m_Axis_Starty=m_Picture.GetAxis().GetMiny();
	dlg.m_Axis_Endx =m_Picture.GetAxis().GetMaxx();
	dlg.m_Axis_Endy=m_Picture.GetAxis().GetMaxy();
	dlg.m_Axis_Width=m_Picture.GetAxis().GetWidth();
	dlg.SetColorx(m_Picture.GetAxis().GetColor()[0]);
	dlg.SetColory(m_Picture.GetAxis().GetColor()[1]);
	dlg.m_InterValx=m_Picture.GetAxis().GetIntervalx();
	dlg.m_Intervaly=m_Picture.GetAxis().GetIntervaly();
	dlg.m_Centerx=m_Picture.GetAxis().GetCenter().x;
	dlg.m_Centery=m_Picture.GetAxis().GetCenter().y;


	int response=dlg.DoModal();
	//dlg.UpdateData(true);
	if(response==IDOK)
	{   
		m_Picture.SetAxis(dlg.m_Axis_Startx ,dlg.m_Axis_Endx,dlg.m_Axis_Starty,dlg.m_Axis_Endy,dlg.m_InterValx,dlg.m_Intervaly);
		m_Picture.SetText(dlg.m_Lable_x ,dlg.m_Lable_y);
		m_Picture.SetAxisWidth(dlg.m_Axis_Width);
		m_Picture.SetColor(dlg.GetColorx(),dlg.GetColory());
		m_Picture.SetCenter(dlg.m_Centerx,dlg.m_Centery);
	}

	this->RedrawWindow();

	
	
}


void CFilmDesignView::OnInitialUpdate() 
{
	CView::OnInitialUpdate();
	
	
	// TODO: Add your specialized code here and/or call the base class
	
}



void CFilmDesignView::OnLButtonDblClk(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	CPoint dot=m_Picture.GetAxis().GetCenter();
	
    if((point.x>=dot.x && point.y>=dot.y*0.98&& point.y<=dot.y*1.05)||(point.y<=dot.y && point.x<=dot.x*1.05 && point.y>=dot.x*0.998))
		this->OnSetAxis();

	
	CView::OnLButtonDblClk(nFlags, point);
}

void CFilmDesignView::OnThicknesskind() 
{
	// TODO: Add your command handler code here
	CThicknessKindSet dlg;
	int kind=m_Picture.GetThickKind();
	if(kind==1)  dlg.m_ThicknessKind=1;
	else if(kind==2)  dlg.m_ThicknessKind=2;
    else 	dlg.m_ThicknessKind=1;
	dlg.DoModal();
	m_Picture.SetThickKind(dlg.m_ThicknessKind);
	
	this->RedrawWindow();
	
	
}

void CFilmDesignView::OnDrawParameter() 
{
	// TODO: Add your command handler code here
    CParameter dlg;
    
	
	dlg.m_Angle=this->m_Picture.GetAngle();
	dlg.m_InN=m_Picture.GetInN();
	dlg.m_VibrateKind=m_Picture.GetVibrateKind();
	dlg.m_WaveLength=m_Picture.GetWaveLength();
	
	if(this->m_Picture.GetThickKind()==1)
	    dlg.m_Show=_T("不用参考波长");
	if(dlg.DoModal()==IDOK)
	{   
	    this->m_Picture.SetAngle(dlg.m_Angle*PI/180 );
		if(this->m_Picture.GetThickKind()!=1)
		this->m_Picture.SetWaveLength(dlg.m_WaveLength);
		this->m_Picture.SetVibrateKind(dlg.m_VibrateKind);
          
		int select=dlg.m_Selected;
		switch(select)
		{
		case 1:  m_Picture.SetShapeofkind(1);break;
		case 2:  m_Picture.SetShapeofkind(2);break;
		case 3:  m_Picture.SetShapeofkind(3);break ;
		default: break;
		}
	   

         

	}




	this->RedrawWindow();
    
	
		
}

void CFilmDesignView::OnDrawProperty() 
{
	// TODO: Add your command handler code here
	CDC* pDC=GetDC();
	CRect rect;
	GetClientRect(&rect);
    //m_Picture.SetShapeofkind(0);
	m_Picture.InPutData(); 
	//this->RedrawWindow();
	m_Picture.Compute(pDC,rect);
    this->RedrawWindow();
	
	
    
	

	
}



void CFilmDesignView::OnMouseMove(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	CClientDC dc(this);
	float logicx,logicy;
	logicx=float((point.x-m_Picture.GetAxis().GetCenter().x)/m_Picture.GetAxis().GetRatio()[0]+m_Picture.GetAxis().GetMinx());
	logicy=float((m_Picture.GetAxis().GetCenter().y-point.y)/m_Picture.GetAxis().GetRatio()[1]+m_Picture.GetAxis().GetMiny());
	CString s1,s2;
	s1.Format("%3.1f", logicx );
	s2.Format("%2.1f",logicy);
	dc.TextOut(200,10,"X: "+s1+" --- "+"Y "+s2);
	
	
	CView::OnMouseMove(nFlags, point);
}

void CFilmDesignView::OnLineParameter() 
{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -