📄 incomewizarddlg.h
字号:
#pragma once //这些代码由王昌栋编写,未经允许,不得随便改动,如有问题欢迎提出!
#include "IncomeWizardIncomeDlg.h"
#include "IncomeWizardBankCountDlg.h"
#include "IncomeWizardBankDlg.h"
#include "IncomeWizardBorrowCountDlg.h"
#include "IncomeWizardBorrowDlg.h"
#include "IncomeWizardInvestCountDlg.h"
#include "IncomeWizardInvestDlg.h"
#include "IncomeWizardOutcomeDlg.h"
#include "IncomeWizardTangibleCountDlg.h"
#include "IncomeWizardTangibleDlg.h"
#include "IncomeWizardFinishDlg.h"
#include "tagStack.h"
#include "Income.h"
#include "Bank.h"
#include "Outcome.h"
#include "Tangible.h"
#include "Invest.h"
#include "Borrow.h"
#include "Cash.h"
#include "DataClass.h"
#include "afxwin.h"
#include "BmpProgCtrl.h"
#define INCOME_STEP1 1
#define BANKCOUNT_STEP2 2
#define BANK_STEP3 3
#define BANK1_STEP4 4
#define BANK2_STEP5 5
#define BANK3_STEP6 6
#define BANK4_STEP7 7
#define OUTCOME_STEP8 8
#define TANGIBLECOUNT_STEP9 9
#define TANGIBLE_STEP10 10
#define TANGIBLE1_STEP11 11
#define TANGIBLE2_STEP12 12
#define TANGIBLE3_STEP13 13
#define TANGIBLE4_STEP14 14
#define INVESTCOUNT_STEP15 15
#define INVEST_STEP16 16
#define INVEST1_STEP17 17
#define INVEST2_STEP18 18
#define INVEST3_STEP19 19
#define INVEST4_STEP20 20
#define BORROWCOUNT_STEP21 21
#define BORROW_STEP22 22
#define BORROW1_STEP23 23
#define BORROW2_STEP24 24
#define BORROW3_STEP25 25
#define BORROW4_STEP26 26
#define FINISH_STEP27 27
#define CASH_STEP 28
#define OTHERCONSUM_STEP 8
//下面是登记各个操作共有多少个及是否完成的标志的数据结构
struct tagCount
{
int m_iBankCount;//共有多少个银行操作
int m_iCurBank;//当前的操作
int m_iBorrowCount;//共有多少个借贷操作
int m_iCurBorrow;//当前操作
int m_iInvestCount;//共有多少个投资操作
int m_iCurInvest;//当前操作
int m_iTangibleCount;//共有多少个购买物品操作
int m_iCurTangible;//当前操作
};
// CIncomeWizardDlg 对话框
struct tagFlow
{
bool m_bCash;
double m_dCashAmount;
bool m_bBank;
double m_dBankAmount;
bool m_bInvest;
double m_dInvestAmount;
bool m_bOutcome;
double m_dOutcomeAmount;
bool m_bTangible;
double m_dTangibleAmount;
bool m_bOtherConsum;
double m_dOtherConsumAmount;
bool m_bBorrow;
double m_dBorrowAmount;
};
class CIncomeWizardDlg : public CDialog
{
DECLARE_DYNAMIC(CIncomeWizardDlg)
public:
CIncomeWizardDlg(CWnd* pParent = NULL); // 标准构造函数
virtual ~CIncomeWizardDlg();
// 对话框数据
enum { IDD = IDD_INCOME_WIZARD_DLG };
protected:
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP()
public:
void SetWizButton(UINT uFlag);//设置不同的按钮的可用性
void ShowPage(UINT nPos);//显示各个页面
void AddPage(CDialog* pDialog, UINT nID);//添加各个页面
void SetCaption(UINT nPos);
UINT nPageCount;//页的总数
UINT nCurrentPage; //当前页
typedef struct PAGELINK{
UINT nNum;
CDialog* pDialog;
struct PAGELINK* Next;
};
PAGELINK* pPageLink; //表头,用来连接所有的页
tagStack <int> LinkStack;//栈,用来保存页的路径
CRect rectPage;
public:
virtual BOOL OnInitDialog();
public:
afx_msg void OnDestroy();
public:
afx_msg void OnBnClickedFinish();
public:
afx_msg void OnBnClickedPrev();
public:
afx_msg void OnBnClickedNext();
public:
afx_msg void OnBnClickedCancel();
//////////////////////////////////////
//该向导的所有页
CIncomeWizardIncomeDlg * m_pIncome_Step1 ;
CIncomeWizardBankCountDlg *m_pBankCount_Step2;
CIncomeWizardBankDlg * m_pBank_Step3 ;
CIncomeWizardBankDlg * m_pBank1_Step4 ;
CIncomeWizardBankDlg * m_pBank2_Step5 ;
CIncomeWizardBankDlg * m_pBank3_Step6 ;
CIncomeWizardBankDlg * m_pBank4_Step7 ;
CIncomeWizardOutcomeDlg * m_pOutcome_Step8;
CIncomeWizardTangibleCountDlg * m_pTangibleCount_Step9;
CIncomeWizardTangibleDlg * m_pTangible_Step10;
CIncomeWizardTangibleDlg * m_pTangible1_Step11;
CIncomeWizardTangibleDlg * m_pTangible2_Step12;
CIncomeWizardTangibleDlg * m_pTangible3_Step13;
CIncomeWizardTangibleDlg * m_pTangible4_Step14;
CIncomeWizardInvestCountDlg * m_pInvestCount_Step15;
CIncomeWizardInvestDlg * m_pInvest_Step16;
CIncomeWizardInvestDlg * m_pInvest1_Step17;
CIncomeWizardInvestDlg * m_pInvest2_Step18;
CIncomeWizardInvestDlg * m_pInvest3_Step19;
CIncomeWizardInvestDlg * m_pInvest4_Step20;
CIncomeWizardBorrowCountDlg * m_pBorrowCount_Step21;
CIncomeWizardBorrowDlg * m_pBorrow_Step22;
CIncomeWizardBorrowDlg * m_pBorrow1_Step23;
CIncomeWizardBorrowDlg * m_pBorrow2_Step24;
CIncomeWizardBorrowDlg * m_pBorrow3_Step25;
CIncomeWizardBorrowDlg * m_pBorrow4_Step26;
CIncomeWizardFinishDlg * m_pFinish_Step27;
////////////////////////////////////////////////////
//下面是用于登记收入流向各个操作个数的数据
tagCount *m_pCount;
tagFlow *m_pFlow;
//下面是处理各个下一步的子对话框的函数
void IncomeNext();
void BankCountNext();
void BankNext();
void Bank1Next();
void Bank2Next();
void Bank3Next();
void Bank4Next();
void OutcomeNext();
void TangibleCountNext();
void TangibleNext();
void Tangible1Next();
void Tangible2Next();
void Tangible3Next();
void Tangible4Next();
void InvestCountNext();
void InvestNext();
void Invest1Next();
void Invest2Next();
void Invest3Next();
void Invest4Next();
void BorrowCountNext();
void BorrowNext();
void Borrow1Next();
void Borrow2Next();
void Borrow3Next();
void Borrow4Next();
///////////////////////////////////////////////////////////////////////
//这个向导的功能超级强大,代码可能超过几千行,为了简化,下面是辅助函数
////用来显示最后一步中的列表的函数
void InsertInfo(CString Kind, CString Name, double Amount,UINT nStep);
void DeleteInfo(UINT nStep);
//下面这个函数用来在下一步的时候修改信息
void UpdateStep(UINT nStep);
//下面这个函数用来列出所有的前步骤信息
void ListAllBank();
void ListAllTangible();
void ListOtherConsum();
void ListAllInvest();
void ListAllBorrow();
void ListCash();
void ListIncome();
double GetBankAmount();
double GetOutcomeAmount();
double GetOtherConsumAmount();
double GetTangibleAmount();
double GetInvestAmount();
double GetBorrowAmount();
double GetCashAmount();
//数据库存储
CIncome m_pIncomeSet;
CBank m_pBankSet;
COutcome m_pOutcomeSet;
CTangible m_pTangibleSet;
CInvest m_pInvestSet;
CBorrow m_pBorrowSet;
CCash m_pCashSet;
void SaveIncome(CIncomeWizardIncomeDlg *dlg);
void SaveBank(CIncomeWizardBankDlg *dlg);
void SaveOutcome(CIncomeWizardOutcomeDlg *dlg);
void SaveTangible(CIncomeWizardTangibleDlg *dlg);
void SaveInvest(CIncomeWizardInvestDlg *dlg);
void SaveBorrow(CIncomeWizardBorrowDlg *dlg);
void SaveCash();
void SaveAllBank();
void SaveAllOutcome();
void SaveAllTangible();
void SaveAllInvest();
void SaveAllBorrow();
void SaveAllCash();
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
COLORREF m_backcolor;
CBrush m_brush;
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -