📄 mainfrm.cpp
字号:
// MainFrm.cpp : implementation of the CMainFrame class
//
#include "stdafx.h"
#include "aoManage.h"
#include "Login.h"
#include "AddUser.h"
#include "ChPwd.h"
#include "ChPri.h"
#include "CClass.h"
#include "Material.h"
#include "Product.h"
#include "Supply.h"
#include "InM.h"
#include "InP.h"
#include "SearchM.h"
#include "SearchC.h"
#include "SearchP.h"
#include "SearchS.h"
#include "SearchI.h"
#include "ComputeM.h"
#include "ComputeP.h"
#include "ComputeS.h"
#include "Storage.h"
#include "Useage.h"
#include "Detail.h"
#include "MainFrm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMainFrame
IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd)
BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
ON_WM_CREATE()
ON_WM_PAINT()
ON_WM_CLOSE()
ON_COMMAND(ID_FILE_ADDUSER, OnFileAdduser)
ON_COMMAND(ID_FILE_CHPWD, OnFileChpwd)
ON_COMMAND(ID_FILE_CHPRIORITY, OnFileChpriority)
ON_COMMAND(ID_CODE_MCLASS, OnCodeMclass)
ON_COMMAND(ID_CODE_MATERIAL, OnCodeMaterial)
ON_COMMAND(ID_CODE_PRODUCT, OnCodeProduct)
ON_COMMAND(ID_CODE_SUPPLY, OnCodeSupply)
ON_COMMAND(ID_INPUT_IN, OnInputIn)
ON_COMMAND(ID_INPUT_OUT, OnInputOut)
ON_COMMAND(ID_SEARCH_CODE_MATERIAL, OnSearchCodeMaterial)
ON_COMMAND(ID_SEARCH_CODE_MCLASS, OnSearchCodeMclass)
ON_COMMAND(ID_SEARCH_CODE_PRODUCT, OnSearchCodeProduct)
ON_COMMAND(ID_SEARCH_CODE_SUPPLY, OnSearchCodeSupply)
ON_COMMAND(ID_SEARCH_INPUT_MATERIAL, OnSearchInputMaterial)
ON_COMMAND(ID_COMPUTE_MATERIAL, OnComputeMaterial)
ON_COMMAND(ID_COMPUTE_PRODUCT, OnComputeProduct)
ON_COMMAND(ID_COMPUTE_SPRODUCT, OnComputeSproduct)
ON_UPDATE_COMMAND_UI(ID_FILE_ADDUSER, OnUpdateFileAdduser)
ON_UPDATE_COMMAND_UI(ID_FILE_CHPRIORITY, OnUpdateFileChpriority)
ON_COMMAND(ID_SEARCH_STORAGE, OnSearchStorage)
ON_COMMAND(ID_CODE_USEAGE, OnCodeUseage)
ON_COMMAND(ID_SEARCH_DETAIL, OnSearchDetail)
ON_COMMAND(ID_HELP_TITLE, OnHelpTitle)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
static UINT indicators[] =
{
ID_SEPARATOR, // status line indicator
ID_SEPARATOR,
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};
/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction
CMainFrame::CMainFrame()
{
// TODO: add member initialization code here
m_pLogin=new CDaoRecordset(&m_db);
m_nReturn=0;
}
CMainFrame::~CMainFrame()
{
}
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
HBITMAP hbm = (HBITMAP)::LoadImage(AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDR_MAINFRAME),
IMAGE_BITMAP,
0,0, // cx,cy
LR_CREATEDIBSECTION | LR_LOADMAP3DCOLORS );
CBitmap bm;
bm.Attach(hbm);
// Create image list and set in toolbar.
// Must use ILC_COLOR8 for 256-color images!
//
m_ilToolBar.Create(16,16, ILC_COLOR24, 4, 4);
m_ilToolBar.Add(&bm,(CBitmap*)NULL);
m_wndToolBar.GetToolBarCtrl().SetImageList(&m_ilToolBar);
m_wndToolBar.GetToolBarCtrl().SetButtonWidth(40,80);
m_wndToolBar.SetButtons(NULL,6);
m_wndToolBar.SetButtonInfo(0,ID_FILE_CHPWD,TBSTYLE_BUTTON,0);
m_wndToolBar.SetButtonText(0,"更改密码");
m_wndToolBar.SetButtonInfo(1,ID_FILE_ADDUSER,TBSTYLE_BUTTON,1);
m_wndToolBar.SetButtonText(1,"增加用户");
m_wndToolBar.SetButtonInfo(2,0,TBBS_SEPARATOR,0);
m_wndToolBar.SetButtonInfo(3,ID_INPUT_IN,TBSTYLE_BUTTON,2);
m_wndToolBar.SetButtonText(3,"入库");
m_wndToolBar.SetButtonInfo(4,0,TBBS_SEPARATOR,0);
m_wndToolBar.SetButtonInfo(5,ID_APP_EXIT,TBSTYLE_BUTTON,3);
m_wndToolBar.SetButtonText(5,"退出");
CRect rc;
m_wndToolBar.GetItemRect(0,rc);
m_wndToolBar.SetSizes(rc.Size(),CSize(16,16));
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
}
// TODO: Delete these three lines if you don't want the toolbar to
// be dockable
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
ShowWindow(SW_SHOWMAXIMIZED);
m_db.Open("data\\manage.mdb");
return 0;
}
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CMDIFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CMainFrame diagnostics
#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
CMDIFrameWnd::AssertValid();
}
void CMainFrame::Dump(CDumpContext& dc) const
{
CMDIFrameWnd::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers
void CMainFrame::OnPaint()
{
CPaintDC dc(this); // device context for painting
static BOOL bFirst=TRUE;
if (bFirst)
{
bFirst=!bFirst;
CLogin dlg;
if ((m_nReturn=dlg.DoModal())==IDCANCEL)
PostMessage(WM_CLOSE);
else
{
CString strStatus;
strStatus="操作员:"+m_strOperator+" 权限:"+m_strPriority;
m_wndStatusBar.SetPaneText(1,strStatus);
}
}
// Do not call CMDIFrameWnd::OnPaint() for painting messages
}
void CMainFrame::OnClose()
{
if (m_nReturn==IDOK)
{
COleDateTime dtCrnt=COleDateTime::GetCurrentTime();
m_pLogin->Open(AFX_DAO_USE_DEFAULT_TYPE,"select * from login");
if (m_pLogin->GetRecordCount())
{
m_pLogin->MoveLast();
m_pLogin->Edit();
m_pLogin->SetFieldValue("etime",dtCrnt);
m_pLogin->Update();
m_pLogin->Close();
}
}
CMDIFrameWnd::OnClose();
}
void CMainFrame::OnFileAdduser()
{
CAddUser dlg;
dlg.DoModal();
}
void CMainFrame::OnFileChpwd()
{
CChPwd dlg;
dlg.DoModal();
}
void CMainFrame::OnFileChpriority()
{
CChPri dlg;
dlg.DoModal();
}
void CMainFrame::OnCodeMclass()
{
CCClass dlg;
dlg.DoModal();
}
void CMainFrame::OnCodeMaterial()
{
CMaterial dlg;
dlg.DoModal();
}
void CMainFrame::OnCodeProduct()
{
CProduct dlg;
dlg.DoModal();
}
void CMainFrame::OnCodeSupply()
{
CSupply dlg;
dlg.DoModal();
}
void CMainFrame::OnInputIn()
{
CInM dlg;
dlg.DoModal();
}
void CMainFrame::OnInputOut()
{
CInP dlg;
dlg.DoModal();
}
void CMainFrame::OnSearchCodeMaterial()
{
CSearchM dlg;
dlg.DoModal();
}
void CMainFrame::OnSearchCodeMclass()
{
CSearchC dlg;
dlg.DoModal();
}
void CMainFrame::OnSearchCodeProduct()
{
CSearchP dlg;
dlg.DoModal();
}
void CMainFrame::OnSearchCodeSupply()
{
CSearchS dlg;
dlg.DoModal();
}
void CMainFrame::OnSearchInputMaterial()
{
CSearchI dlg;
dlg.DoModal();
}
void CMainFrame::OnComputeMaterial()
{
CComputeM dlg;
dlg.DoModal();
}
void CMainFrame::OnComputeProduct()
{
CComputeP dlg;
dlg.DoModal();
}
void CMainFrame::OnComputeSproduct()
{
CComputeS dlg;
dlg.DoModal();
}
void CMainFrame::OnUpdateFileAdduser(CCmdUI* pCmdUI)
{
if (strcmp(m_strPriority,"3"))
pCmdUI->Enable(FALSE);
}
void CMainFrame::OnUpdateFileChpriority(CCmdUI* pCmdUI)
{
if (strcmp(m_strPriority,"3"))
pCmdUI->Enable(FALSE);
}
void CMainFrame::OnSearchStorage()
{
CStorage dlg;
dlg.DoModal();
}
void CMainFrame::OnCodeUseage()
{
CUseage dlg;
dlg.DoModal();
}
void CMainFrame::OnSearchDetail()
{
CDetail dlg;
dlg.DoModal();
}
void CMainFrame::OnHelpTitle()
{
::WinHelp(AfxGetMainWnd()->m_hWnd,"help\\仓库管理系统.hlp",HELP_CONTENTS,0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -