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

📄 mortcalcview.cpp

📁 <win2k程序设计>的源码.麦格劳希尔,清华出版.作者:Raj Rajagopal & Subodh Monica
💻 CPP
字号:
// MortCalcView.cpp : implementation of the CMortCalcView class
//

#include "stdafx.h"
#include "MortCalc.h"

#include "MortCalcDoc.h"
#include "MortCalcView.h"
#include "SetLoanDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMortCalcView

IMPLEMENT_DYNCREATE(CMortCalcView, CView)

BEGIN_MESSAGE_MAP(CMortCalcView, CView)
	//{{AFX_MSG_MAP(CMortCalcView)
	ON_COMMAND(IDM_PAYMENT, OnPayment)
	ON_COMMAND(IDM_SETLOAN, OnSetloan)
	//}}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()

/////////////////////////////////////////////////////////////////////////////
// CMortCalcView construction/destruction

CMortCalcView::CMortCalcView()
{
	// TODO: add construction code here

}

CMortCalcView::~CMortCalcView()
{
}

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

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CMortCalcView drawing

void CMortCalcView::OnDraw(CDC* pDC)
{
	CMortCalcDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	// TODO: add draw code for native data here
    
    float P, R, M;
    int Y;
    char    szBuffer[256];

    pDoc->GetLoanData(&P, &R, &Y, &M);

    if (M == 0.0)
    {
        strcpy (szBuffer, "Please enter loan data.");
        pDC->TextOut(20, 50, szBuffer);
    }
    else
    {
        sprintf (szBuffer, "The loan amount is %.2f", P);
        pDC->TextOut(20, 50, szBuffer);
        sprintf (szBuffer, "The interest rate is %.2f", R);
        pDC->TextOut(20, 70, szBuffer);
        sprintf (szBuffer, "The loan period in years is %d", Y);
        pDC->TextOut(20, 90, szBuffer);
        sprintf (szBuffer, "The monthly payment is %.2f", M);
        pDC->TextOut(20, 110, szBuffer);

    }
    

}

/////////////////////////////////////////////////////////////////////////////
// CMortCalcView printing

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CMortCalcView diagnostics

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

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

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

/////////////////////////////////////////////////////////////////////////////
// CMortCalcView message handlers

void CMortCalcView::OnPayment() 
{
	// TODO: Add your command handler code here
    CMortCalcDoc    *pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    pDoc->Compute();
    Invalidate();

}

void CMortCalcView::OnSetloan() 
{
	// TODO: Add your command handler code here
    CSetLoanDlg dbSetLoanDlg;

    if (dbSetLoanDlg.DoModal() == IDOK)
    {
        CMortCalcDoc    *pDoc = GetDocument();
        ASSERT_VALID(pDoc);
        pDoc->SetLoanData(dbSetLoanDlg.m_amount, dbSetLoanDlg.m_rate, dbSetLoanDlg.m_years);
    }
	
}

⌨️ 快捷键说明

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