📄 financedlg.cpp
字号:
// FinanceDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "SMS.h"
#include "FinanceDlg.h"
// CFinanceDlg 对话框
IMPLEMENT_DYNAMIC(CFinanceDlg, CDialog)
CFinanceDlg::CFinanceDlg(CWnd* pParent /*=NULL*/)
: CDialog(CFinanceDlg::IDD, pParent)
, m_pCashSet(&theApp.m_db )
, m_pBorrowSet(&theApp.m_db )
{
//显示窗口颜色
m_backcolor=m_RGB_BkColor;
m_brush.CreateSolidBrush(m_backcolor);
}
CFinanceDlg::~CFinanceDlg()
{
}
void CFinanceDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_FINANCE_TAB, m_Finance_TabCtrl);
}
BEGIN_MESSAGE_MAP(CFinanceDlg, CDialog)
ON_NOTIFY(TCN_SELCHANGE, IDC_FINANCE_TAB, &CFinanceDlg::OnTcnSelchangeFinanceTab)
ON_WM_TIMER()
ON_WM_CLOSE()
ON_WM_CTLCOLOR()
ON_COMMAND(ID_FINANCE_CASH, &CFinanceDlg::OnFinanceCash)
ON_COMMAND(ID_FINANCE_INCOME, &CFinanceDlg::OnFinanceIncome)
ON_COMMAND(ID_FINANCE_OUTCOME, &CFinanceDlg::OnFinanceOutcome)
ON_COMMAND(ID_FINANCE_BANK, &CFinanceDlg::OnFinanceBank)
ON_COMMAND(ID_FINANCE_TANGIBLE, &CFinanceDlg::OnFinanceTangible)
ON_COMMAND(ID_FINANCE_BORROW, &CFinanceDlg::OnFinanceBorrow)
ON_COMMAND(ID_FINANCE_INVEST, &CFinanceDlg::OnFinanceInvest)
ON_COMMAND(ID_FINANCE_TRANSFER, &CFinanceDlg::OnFinanceTransfer)
ON_COMMAND(ID_FINANCE_PLAN, &CFinanceDlg::OnFinancePlan)
ON_COMMAND(ID_FINANCE_CLOSE, &CFinanceDlg::OnFinanceClose)
ON_UPDATE_COMMAND_UI(ID_FINANCE_CASH, &CFinanceDlg::OnUpdateFinanceCash)
ON_UPDATE_COMMAND_UI(ID_FINANCE_INCOME, &CFinanceDlg::OnUpdateFinanceIncome)
ON_UPDATE_COMMAND_UI(ID_FINANCE_OUTCOME, &CFinanceDlg::OnUpdateFinanceOutcome)
ON_UPDATE_COMMAND_UI(ID_FINANCE_BANK, &CFinanceDlg::OnUpdateFinanceBank)
ON_UPDATE_COMMAND_UI(ID_FINANCE_TANGIBLE, &CFinanceDlg::OnUpdateFinanceTangible)
ON_UPDATE_COMMAND_UI(ID_FINANCE_BORROW, &CFinanceDlg::OnUpdateFinanceBorrow)
ON_UPDATE_COMMAND_UI(ID_FINANCE_INVEST, &CFinanceDlg::OnUpdateFinanceInvest)
ON_UPDATE_COMMAND_UI(ID_FINANCE_TRANSFER, &CFinanceDlg::OnUpdateFinanceTransfer)
ON_UPDATE_COMMAND_UI(ID_FINANCE_PLAN, &CFinanceDlg::OnUpdateFinancePlan)
ON_WM_CONTEXTMENU()
ON_WM_INITMENUPOPUP()
END_MESSAGE_MAP()
// CFinanceDlg 消息处理程序
BOOL CFinanceDlg::OnInitDialog()
{
CDialog::OnInitDialog();
BeginWaitCursor();
// TODO: 在此添加额外的初始化
SetTimer(FINANCE_TIMER,10000,NULL);//设置定时期,用于定时监测有没有金额变动或借贷变动
///////初始化添加现金和借贷
//先添加现金
double dCashAmount=0;
CString StrCashAmount=L"";
int Length;
if(m_pCashSet.IsOpen ())
m_pCashSet.Close ();
m_pCashSet.Open (AFX_DB_USE_DEFAULT_TYPE,L"Select * From Cash Order by cDate");//按结算日期排序
if(m_pCashSet.GetRecordCount ()!=0)//还没有现金的信息,则不用理,否则进入
{
m_pCashSet.MoveLast ();//现金是用最后的状态的,故最后一个
dCashAmount=m_pCashSet.m_cAmount ;
StrCashAmount.Format (L"%f",dCashAmount);
Length=StrCashAmount.GetLength ();
StrCashAmount.Delete (Length-4,4);
}
m_pCashSet.Close ();
SetDlgItemText(IDC_CASHNOW_STATIC,StrCashAmount);
//再添加借贷信息
CString StrBorrowInfo=L"";
CString StartDate;
CString EndDate;
CString StrAmount;
CString StrMoneyLeft;
CTime tTime=CTime::GetCurrentTime();
CString Date=DateToString(tTime);
if(m_pBorrowSet.IsOpen ())
m_pBorrowSet.Close ();
m_pBorrowSet.Open (AFX_DB_USE_DEFAULT_TYPE,L"Select * From Borrow Order by bDate");
if(m_pBorrowSet.GetRecordCount ()==0)//还没有借贷的信息,则显示一些名言
{
m_pBorrowSet.Close ();
StrBorrowInfo=L"节俭持家,脑筋理财。";
SetDlgItemText(IDC_BORROW_REMIND_STATIC,StrBorrowInfo);
}
else//否则,监测借贷信息
{
m_pBorrowSet.MoveFirst ();
m_pBorrowSet.m_strFilter .Empty ();
while(!m_pBorrowSet.IsEOF ())
{
StartDate=DateToString(m_pBorrowSet.m_bStartDate );
EndDate=DateToString(m_pBorrowSet.m_bEndDate );
if(StartDate<=Date&&EndDate>=Date)//如果借贷期间跨越了当天,则显示
{
StrAmount.Format(L"%f",m_pBorrowSet.m_bAmount);
Length=StrAmount.GetLength ();
StrAmount.Delete (Length-4,4);
StrMoneyLeft.Format (L"%f",m_pBorrowSet.m_bMoneyLeft );
Length=StrMoneyLeft.GetLength ();
StrMoneyLeft.Delete (Length-4,4);
//还要判断是借入,借出,还欠,还回等操作
if((CString)m_pBorrowSet.m_bAction==L"借入")
{
//借入,则必须提醒
StrBorrowInfo+=L"你于"+FormatDate(m_pBorrowSet.m_bDate) +L"从"
+m_pBorrowSet.m_bOtherName +L"处借入"+StrAmount+L"元,有效期从"
+FormatDate(m_pBorrowSet.m_bStartDate) +L"到"+FormatDate(m_pBorrowSet.m_bEndDate) +L"\n";
}else
if((CString)m_pBorrowSet.m_bAction==L"借出")
{
//借出,则必须提醒
StrBorrowInfo+=m_pBorrowSet.m_bOtherName +L"于"
+FormatDate(m_pBorrowSet.m_bDate) +L"从你手中借出"+StrAmount+L"元,有效期从"
+FormatDate(m_pBorrowSet.m_bStartDate) +L"到"+FormatDate(m_pBorrowSet.m_bEndDate) +L"\n";
}else
if((CString)m_pBorrowSet.m_bAction==L"还出")
{ //还出,只有在有余额的时候要提醒
if(m_pBorrowSet.m_bMoneyLeft !=0)
StrBorrowInfo+=L"你于"+FormatDate(m_pBorrowSet.m_bDate) +L"还出"
+StrAmount +L"元给"+m_pBorrowSet.m_bOtherName
+L"仍欠"+StrMoneyLeft +L"元\n";
}else
{ //还入,只有在还有余额的时候提醒
if(m_pBorrowSet.m_bMoneyLeft !=0)
StrBorrowInfo+=m_pBorrowSet.m_bOtherName +L"于"+FormatDate(m_pBorrowSet.m_bDate)
+L"还入"+StrAmount +L"元,仍欠"+StrMoneyLeft +L"元\n";
}
}//if
m_pBorrowSet.MoveNext ();
}//while
}//else
m_pBorrowSet.Close ();
SetDlgItemText(IDC_BORROW_REMIND_STATIC,StrBorrowInfo);
//借贷信息添加完毕
TCITEM item;
item.mask =TCIF_TEXT;
CRect r;
m_Finance_TabCtrl.GetClientRect (&r);
item.pszText =_T(" 现 金 ");
m_Finance_TabCtrl.InsertItem (0,&item);
item.pszText =_T(" 收 入 ");
m_Finance_TabCtrl.InsertItem (1,&item);
item.pszText =_T(" 支 出 ");
m_Finance_TabCtrl.InsertItem (2,&item);
item.pszText =_T(" 银 行 ");
m_Finance_TabCtrl.InsertItem (3,&item);
item.pszText =_T(" 物 品 ");
m_Finance_TabCtrl.InsertItem (4,&item);
item.pszText =_T(" 借 贷 ");
m_Finance_TabCtrl.InsertItem (5,&item);
item.pszText =_T(" 投 资 ");
m_Finance_TabCtrl.InsertItem (6,&item);
item.pszText =_T(" 转 让 ");
m_Finance_TabCtrl.InsertItem (7,&item);
item.pszText =_T(" 计 划 ");
m_Finance_TabCtrl.InsertItem (8,&item);
//生成各个子对话框
m_FinanceCashDlg.Create (IDD_FINANCE_CASH_DLG,&m_Finance_TabCtrl);
m_FinanceIncomeDlg.Create (IDD_FINANCE_INCOME_DLG,&m_Finance_TabCtrl);
m_FinanceOutcomeDlg.Create (IDD_FINANCE_OUTCOME_DLG,&m_Finance_TabCtrl);
m_FinanceBankDlg.Create (IDD_FINANCE_BANK_DLG,&m_Finance_TabCtrl);
m_FinanceTangibleDlg.Create (IDD_FINANCE_TANGIBLE_DLG,&m_Finance_TabCtrl);
m_FinanceBorrowDlg.Create (IDD_FINANCE_BORROW_DLG,&m_Finance_TabCtrl);
m_FinanceInvestDlg.Create (IDD_FINANCE_INVEST_DLG,&m_Finance_TabCtrl);
m_FinanceTransferDlg.Create (IDD_FINANCE_TRANSFER_DLG,&m_Finance_TabCtrl);
m_FinancePlanDlg.Create (IDD_FINANCE_PLAN_DLG,&m_Finance_TabCtrl);
//显示各个子对话框
m_FinanceCashDlg.SetWindowPos (NULL,2,22,r.right -5, r.bottom -25,SWP_SHOWWINDOW);
m_FinanceIncomeDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinanceOutcomeDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinanceBankDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinanceTangibleDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinanceBorrowDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinanceInvestDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinanceTransferDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinancePlanDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
EndWaitCursor();
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
void CFinanceDlg::OnTcnSelchangeFinanceTab(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: 在此添加控件通知处理程序代码
CRect r;
m_Finance_TabCtrl.GetClientRect (&r);
switch(m_Finance_TabCtrl.GetCurSel ())
{
case 0:
m_FinanceCashDlg.SetWindowPos (NULL,2,22,r.right -5, r.bottom -25,SWP_SHOWWINDOW);
m_FinanceIncomeDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinanceOutcomeDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinanceBankDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinanceTangibleDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinanceBorrowDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinanceInvestDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinanceTransferDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinancePlanDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
break;
case 1:
m_FinanceCashDlg.SetWindowPos (NULL,2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinanceIncomeDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_SHOWWINDOW);
m_FinanceOutcomeDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinanceBankDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinanceTangibleDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinanceBorrowDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinanceInvestDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinanceTransferDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinancePlanDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
break;
case 2:
m_FinanceCashDlg.SetWindowPos (NULL,2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinanceIncomeDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinanceOutcomeDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_SHOWWINDOW);
m_FinanceBankDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinanceTangibleDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinanceBorrowDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinanceInvestDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
m_FinanceTransferDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -