📄 mainfrm.cpp
字号:
// MainFrm.cpp : implementation of the CMainFrame class
//
#include "stdafx.h"
#include "PressManager.h"
#include "WinFeeView.h"
#include "MainFrm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMainFrame
IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
ON_WM_CREATE()
ON_COMMAND(ID_MENU_START_FORM, OnMenuStartForm)
ON_COMMAND(ID_MENU_CHANGE_PASSWD, OnMenuChangePasswd)
ON_COMMAND(ID_MENU_CHARGE_LIST, OnMenuChargeList)
ON_COMMAND(ID_MENU_DEPARTMENT_MAINTAIN, OnMenuDepartmentMaintain)
ON_COMMAND(ID_MENU_IN, OnMenuIn)
ON_COMMAND(ID_MENU_IN_LIST, OnMenuInList)
ON_COMMAND(ID_MENU_IN_REPORT, OnMenuInReport)
ON_COMMAND(ID_MENU_INCOME_REPORT, OnMenuIncomeReport)
ON_COMMAND(ID_MENU_OPERATOR, OnMenuOperator)
ON_COMMAND(ID_MENU_OPERATOR_LIST, OnMenuOperatorList)
ON_COMMAND(ID_MENU_OUT, OnMenuOut)
ON_COMMAND(ID_MENU_OUT_LIST, OnMenuOutList)
ON_COMMAND(ID_MENU_OUT_REPORT, OnMenuOutReport)
ON_COMMAND(ID_MENU_PRODUCE_LIST, OnMenuProduceList)
ON_COMMAND(ID_MENU_PRODUCT, OnMenuProduct)
ON_COMMAND(ID_MENU_RETURN, OnMenuReturn)
ON_COMMAND(ID_MENU_RETURN_LIST, OnMenuReturnList)
ON_COMMAND(ID_MENU_RETURN_REPORT, OnMenuReturnReport)
ON_COMMAND(ID_MENU_WARE_PURPOSE, OnMenuWarePurpose)
ON_COMMAND(ID_MENU_WARE_TYPE, OnMenuWareType)
ON_COMMAND(ID_MENU_WINDOW_FEE, OnMenuWindowFee)
ON_COMMAND(ID_MENU_STORE_WARE_LIST, OnMenuStoreWareList)
ON_COMMAND(ID_MENU_PRODUCE_WARE_LIST, OnMenuProduceWareList)
ON_COMMAND(ID_MENU_BACKUP_DB, OnMenuBackupDb)
//}}AFX_MSG_MAP
ON_UPDATE_COMMAND_UI(ID_STATUS_OPERATOR, OnSetOperatorID)
ON_UPDATE_COMMAND_UI(ID_STATUS_LOGIN_TIME, OnSetLoginTime)
ON_UPDATE_COMMAND_UI(ID_STATUS_UNITNAME, OnSetUnitName)
END_MESSAGE_MAP()
static UINT indicators[] =
{
ID_SEPARATOR, // status line indicator
ID_STATUS_OPERATOR,
ID_STATUS_LOGIN_TIME,
ID_STATUS_UNITNAME,
};
void CMainFrame::OnSetOperatorID(CCmdUI* pCmdUI)
{
pCmdUI->Enable();
pCmdUI->SetText(m_strOperatorIDStatus);
}
void CMainFrame::OnSetLoginTime(CCmdUI* pCmdUI)
{
pCmdUI->Enable();
pCmdUI->SetText(m_strLoginTimeStatus);
}
void CMainFrame::OnSetUnitName(CCmdUI* pCmdUI)
{
pCmdUI->Enable();
pCmdUI->SetText(m_strUnitNameStatus);
}
/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction
CMainFrame::CMainFrame()
{
// TODO: add member initialization code here
m_strOperatorIDStatus = "";
m_strLoginTimeStatus = "";
m_strUnitNameStatus = "";
}
CMainFrame::~CMainFrame()
{
}
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}
CClientDC dc(this);
SIZE size = dc.GetTextExtent(m_strOperatorIDStatus);
int index = m_wndStatusBar.CommandToIndex(ID_STATUS_OPERATOR);
m_wndStatusBar.SetPaneInfo(index, ID_STATUS_OPERATOR, SBPS_POPOUT,size.cx);
size = dc.GetTextExtent(m_strLoginTimeStatus);
index = m_wndStatusBar.CommandToIndex(ID_STATUS_LOGIN_TIME);
m_wndStatusBar.SetPaneInfo(index, ID_STATUS_LOGIN_TIME, SBPS_POPOUT,size.cx);
size = dc.GetTextExtent(m_strUnitNameStatus);
index = m_wndStatusBar.CommandToIndex(ID_STATUS_UNITNAME);
m_wndStatusBar.SetPaneInfo(index, ID_STATUS_UNITNAME, SBPS_POPOUT,size.cx);
RECT Rect;
SetRect(&Rect, 0,64,800, 550); //非模子窗口的活动区域,没想出自动计算的好办法,
m_Child.InitMainWnd(this, &Rect); //所以只能手工设置。
return 0;
}
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
cs.x = 0;//rc.left;
cs.y = 0;//rc.top;
cs.cx = 1200;//1024;//rc.right - rc.left;
cs.cy = 800;//760;//rc.bottom - rc.top;WS_MAXIMIZE
cs.style |= WS_MAXIMIZE;
// cs.dwExStyle |= WS_MAXIMIZE;
GetCurrentDirectory(255, cpath);
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CMainFrame diagnostics
#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
CFrameWnd::AssertValid();
}
void CMainFrame::Dump(CDumpContext& dc) const
{
CFrameWnd::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers
#include "PressManagerView.h"
void CMainFrame::SwitchToForm(int nForm)
{
CView* pOldActiveView = GetActiveView(); // save old view
CView* pNewActiveView = (CView*)GetDlgItem(nForm); // get new view
if (pNewActiveView == NULL) // if it hasn't been created yet
{ // create it here
switch(nForm) // these IDs are the dialog IDs of the view but can use anything
{
case IDD_PRESSMANAGER_FORM:
pNewActiveView = (CView*) new CPressManagerView;
break;
case IDD_WIN_FEE_FORM:
pNewActiveView = (CView*) new CWinFeeView;
break;
/* case IDD_DIALOG_WIN_FEE:
pNewActiveView = (CView*) new CWinFeeView;
break;
*/ }
CCreateContext context; // attach the document to the new view
context.m_pCurrentDoc = pOldActiveView->GetDocument();
pNewActiveView->Create(NULL, NULL, 0L, CFrameWnd::rectDefault, // and the frame
this, nForm, &context);
pNewActiveView->OnInitialUpdate();
}
SetActiveView(pNewActiveView); // change the active view
pNewActiveView->ShowWindow(SW_SHOW); // show the new window
pOldActiveView->ShowWindow(SW_HIDE); // hide the old
// ::SetWindowWord(pNewActiveView->m_hWnd, GWL_ID, AFX_IDW_PANE_FIRST); // gotta have it
::SetWindowLong(pNewActiveView->m_hWnd, GWL_ID, AFX_IDW_PANE_FIRST); // gotta have it
RecalcLayout(); // adjust frame
delete pOldActiveView; // kill old view
}
void CMainFrame::OnMenuStartForm()
{
// TODO: Add your command handler code here
SwitchToForm(IDD_PRESSMANAGER_FORM);
}
CDocument* CMainFrame::GetActiveDocument()
{
// TODO: Add your specialized code here and/or call the base class
if(!m_strOperatorIDStatus.IsEmpty() || !m_strLoginTimeStatus.IsEmpty() || !m_strUnitNameStatus.IsEmpty())
return CFrameWnd::GetActiveDocument();
CPressManagerDoc* doc = (CPressManagerDoc*)CFrameWnd::GetActiveDocument();
CTime t = CTime::GetCurrentTime();
m_strOperatorIDStatus.Format("操作员:%s", doc->m_strOperatorId);
m_strLoginTimeStatus.Format("登陆时间:%d年%d月%d日 %d:%d" , t.GetYear(),t.GetMonth(),t.GetDay(),t.GetHour(),t.GetMinute());
m_strUnitNameStatus.Format("所属部门:%s", doc->m_strDepartment);
CClientDC dc(this);
SIZE size = dc.GetTextExtent(m_strOperatorIDStatus);
size.cx += 60;
int index = m_wndStatusBar.CommandToIndex(ID_STATUS_OPERATOR);
m_wndStatusBar.SetPaneInfo(index, ID_STATUS_OPERATOR, SBPS_POPOUT,size.cx);
size = dc.GetTextExtent(m_strLoginTimeStatus);
size.cx += 60;
index = m_wndStatusBar.CommandToIndex(ID_STATUS_LOGIN_TIME);
m_wndStatusBar.SetPaneInfo(index, ID_STATUS_LOGIN_TIME, SBPS_POPOUT,size.cx);
size = dc.GetTextExtent(m_strUnitNameStatus);
size.cx += 60;
index = m_wndStatusBar.CommandToIndex(ID_STATUS_UNITNAME);
m_wndStatusBar.SetPaneInfo(index, ID_STATUS_UNITNAME, SBPS_POPOUT,size.cx);
return CFrameWnd::GetActiveDocument();
}
#include "DialogChangePasswd.h"
void CMainFrame::OnMenuChangePasswd()
{
// TODO: Add your command handler code here
CPressManagerDoc* doc = (CPressManagerDoc*)CFrameWnd::GetActiveDocument();
CDialogChangePasswd dlg;
dlg.m_pOperatorSet = &doc->m_OperatorSet;
dlg.m_strOperatorId = doc->m_strOperatorId;
dlg.DoModal();
}
#include "DialogChargeReport.h"
void CMainFrame::OnMenuChargeList()
{
// TODO: Add your command handler code here
CPressManagerDoc* doc = (CPressManagerDoc*)CFrameWnd::GetActiveDocument();
CDialogChargeReport dlg;
dlg.m_pFeeSet = &doc->m_FeeSet;
dlg.m_pOperatorSet = &doc->m_OperatorSet;
dlg.m_strOperatorId = doc->m_strOperatorId;
dlg.DoModal();
}
#include "DialogDepartment.h"
void CMainFrame::OnMenuDepartmentMaintain()
{
// TODO: Add your command handler code here
CPressManagerDoc* doc = (CPressManagerDoc*)CFrameWnd::GetActiveDocument();
CDialogDepartment dlg;
dlg.m_pDepartmentSet = &doc->m_DepartmentSet;
dlg.m_pOperatorSet = &doc->m_OperatorSet;
dlg.m_strOperatorId = doc->m_strOperatorId;
dlg.DoModal();
}
#include "DialogIn.h"
void CMainFrame::OnMenuIn()
{
// TODO: Add your command handler code here
CPressManagerDoc* doc = (CPressManagerDoc*)CFrameWnd::GetActiveDocument();
CDialogIn dlg;
dlg.m_pDepartmentSet = &doc->m_DepartmentSet;
dlg.m_pStoreWareSet = &doc->m_StoreWareSet;
dlg.m_pInWareSet = &doc->m_InWareSet;
dlg.m_pWareModeSet = &doc->m_WareModeSet;
dlg.m_pWarePurposeSet = &doc->m_WarePurposeSet;
dlg.m_pWareTypeSet = &doc->m_WareTypeSet;
dlg.m_pOperatorSet = &doc->m_OperatorSet;
dlg.m_strOperatorId = doc->m_strOperatorId;
dlg.DoModal();
}
#include "DialogInList.h"
void CMainFrame::OnMenuInList()
{
// TODO: Add your command handler code here
CPressManagerDoc* doc = (CPressManagerDoc*)CFrameWnd::GetActiveDocument();
CDialogInList *pDlg = NULL;
char *sName = "物品入库查询"; ////////////////////////////////
if(!m_Child.GetClassChild(sName))
{
pDlg = new CDialogInList;
if(!pDlg)
return;
pDlg->m_pInWareSet = &doc->m_InWareSet;
pDlg->m_pWarePurposeSet = &doc->m_WarePurposeSet;
pDlg->m_pWareTypeSet = &doc->m_WareTypeSet;
pDlg->m_pWareModeSet = &doc->m_WareModeSet;
pDlg->m_pOperatorSet = &doc->m_OperatorSet;
pDlg->m_strOperatorId = doc->m_strOperatorId;
pDlg->Create(IDD_DIALOG_IN_LIST, this);
}
m_Child.ADD((CView*)pDlg, sName);
}
#include "DialogInStat.h"
void CMainFrame::OnMenuInReport()
{
// TODO: Add your command handler code here
CPressManagerDoc* doc = (CPressManagerDoc*)CFrameWnd::GetActiveDocument();
CDialogInStat *pDlg = NULL;
char *sName = "物资采购报表"; ////////////////////////////////
if(!m_Child.GetClassChild(sName))
{
pDlg = new CDialogInStat;
if(!pDlg)
return;
pDlg->m_pItemCountOrderSet = &doc->m_ItemCountOrderSet;
pDlg->m_pWarePurposeSet = &doc->m_WarePurposeSet;
pDlg->m_pWareTypeSet = &doc->m_WareTypeSet;
pDlg->m_pWareModeSet = &doc->m_WareModeSet;
pDlg->m_pOperatorSet = &doc->m_OperatorSet;
pDlg->m_strOperatorId = doc->m_strOperatorId;
pDlg->Create(IDD_DIALOG_IN_STAT, this);
}
m_Child.ADD((CView*)pDlg, sName);
}
#include "DialogIncomeReport.h"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -