📄 outcomewizarddlg1.h
字号:
#pragma once //这些代码由王昌栋编写,未经允许,不得随便改动,如有问题欢迎提出!
#include "afxwin.h"
#include "BmpProgCtrl.h"
#include "OutcomeWizardOutcomeDlg.h"
#include "IncomeWizardBankCountDlg.h"
#include "IncomeWizardBankDlg.h"
#include "IncomeWizardTangibleCountDlg.h"
#include "IncomeWizardTangibleDlg.h"
#include "IncomeWizardFinishDlg.h"
#include "Bank.h"
#include "Outcome.h"
#include "Tangible.h"
#include "Cash.h"
#include "DataClass.h"
#include "tagStack.h"
#define OUTCOME_STEP1 1
#define TANGIBLECOUNT_STEP2 2
#define TANGIBLE_STEP3 3
#define TANGIBLE1_STEP4 4
#define TANGIBLE2_STEP5 5
#define TANGIBLE3_STEP6 6
#define TANGIBLE4_STEP7 7
#define BANKCOUNT_STEP8 8
#define BANK_STEP9 9
#define BANK1_STEP10 10
#define BANK2_STEP11 11
#define BANK3_STEP12 12
#define BANK4_STEP13 13
#define FINISH_STEP14 14
#define OUTCOME_CASH_STEP 15
#define OTHERCONSUM_STEP2 1
//下面是登记各个操作共有多少个及是否完成的标志的数据结构
struct tagOutcomeCount
{
int m_iBankCount;//共有多少个银行操作
int m_iCurBank;//当前的操作
int m_iTangibleCount;//共有多少个购买物品操作
int m_iCurTangible;//当前操作
};
struct tagSource
{
bool m_bBank;
double m_dBankAmount;
bool m_bCash;
double m_dCashAmount;
};
// CIncomeWizardDlg 对话框
struct tagOutcomeFlow
{
bool m_bTangible;
double m_dTangibleAmount;
bool m_bOtherConsum;
double m_dOtherConsumAmount;
};
// COutcomeWizardDlg1 对话框
class COutcomeWizardDlg1 : public CDialog
{
DECLARE_DYNAMIC(COutcomeWizardDlg1)
public:
COutcomeWizardDlg1(CWnd* pParent = NULL); // 标准构造函数
virtual ~COutcomeWizardDlg1();
// 对话框数据
enum { IDD = IDD_OUTCOME_WIZARD_DLG };
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:
afx_msg void OnBnClickedPrev();
public:
afx_msg void OnBnClickedNext();
public:
afx_msg void OnBnClickedFinish();
public:
afx_msg void OnBnClickedCancel();
public:
virtual BOOL OnInitDialog();
public:
afx_msg void OnDestroy();
COutcomeWizardOutcomeDlg * m_pOutcome_Step1 ;
CIncomeWizardTangibleCountDlg * m_pTangibleCount_Step2;
CIncomeWizardTangibleDlg * m_pTangible_Step3;
CIncomeWizardTangibleDlg * m_pTangible1_Step4;
CIncomeWizardTangibleDlg * m_pTangible2_Step5;
CIncomeWizardTangibleDlg * m_pTangible3_Step6;
CIncomeWizardTangibleDlg * m_pTangible4_Step7;
CIncomeWizardBankCountDlg *m_pBankCount_Step8;
CIncomeWizardBankDlg * m_pBank_Step9 ;
CIncomeWizardBankDlg * m_pBank1_Step10 ;
CIncomeWizardBankDlg * m_pBank2_Step11 ;
CIncomeWizardBankDlg * m_pBank3_Step12 ;
CIncomeWizardBankDlg * m_pBank4_Step13 ;
CIncomeWizardFinishDlg * m_pFinish_Step14;
////////////////////////////////////////////////////
//下面是用于登记收入流向各个操作个数的数据
tagOutcomeCount *m_pCount;
tagOutcomeFlow *m_pFlow;
tagSource *m_pSource;
//下面是处理各个下一步的子对话框的函数
void OutcomeNext();
void TangibleCountNext();
void TangibleNext();
void Tangible1Next();
void Tangible2Next();
void Tangible3Next();
void Tangible4Next();
void BankCountNext();
void BankNext();
void Bank1Next();
void Bank2Next();
void Bank3Next();
void Bank4Next();
///////////////////////////////////////////////////////////////////////
//这个向导的功能超级强大,代码可能超过几千行,为了简化,下面是辅助函数
////用来显示最后一步中的列表的函数
void InsertInfo(CString Kind, CString Name, double Amount,UINT nStep);
void DeleteInfo(UINT nStep);
//下面这个函数用来在下一步的时候修改信息
void UpdateStep(UINT nStep);
//下面这个函数用来列出所有的前步骤信息
void ListOutcome();
void ListAllTangible();
void ListOtherConsum();
void ListAllBank();
void ListCash();
double GetBankAmount();
double GetOtherConsumAmount();
double GetTangibleAmount();
double GetCashAmount();
//数据库存储
CBank m_pBankSet;
COutcome m_pOutcomeSet;
CTangible m_pTangibleSet;
CCash m_pCashSet;
void SaveBank(CIncomeWizardBankDlg *dlg);
void SaveOutcome(COutcomeWizardOutcomeDlg *dlg);
void SaveTangible(CIncomeWizardTangibleDlg *dlg);
void SaveCash();
void SaveAllBank();
void SaveAllTangible();
void SaveAllCash();
double GetDatabaseCash();//获取数据库中的现金量
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 + -