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

📄 mainfrm.cpp

📁 以前给一个印刷厂开发的业务管理软件
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// 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 + -