mainfrm.cpp

来自「同学编写的图书馆管理系统(数据库原理大作业)」· C++ 代码 · 共 469 行

CPP
469
字号
// MainFrm.cpp : implementation of the CMainFrame class
//

#include "stdafx.h"
#include "LIBRARY.h"

#include "MainFrm.h"

#include "mmsystem.h"
#include "BorrowBorrowDlg.h"
#include "LogIn.h"
#include "LogOutDlg.h"
#include "BorrowReturn.h"
#include "QueryBasicDlg.h"
#include "CardNewDlg2.h"
#include "BorrowContinue.h"
#include "AdminReturnDlg.h"
#include "AdminStockDlg.h"
#include "InSingleDlg.h"
#include "InMultipleDlg.h"
#include "CardDeleteCno.h"
#include "CardEditCno1.h"
#include "CardEdit.h"
#include "AdminPwd.h"
#include "BookEditInDlg.h"
#include "BookEditDlg.h"
#include "Top10Dlg.h"

#pragma comment(lib,"winmm.lib")  ///////////////////

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

int Music_On;

/////////////////////////////////////////////////////////////////////////////
// CMainFrame

IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
	//{{AFX_MSG_MAP(CMainFrame)
	ON_WM_CREATE()
	ON_COMMAND(ID_BORROW_BORROW, OnBorrowBorrow)
	ON_COMMAND(ID_SYS_MUSIC, OnSysMusic)
	ON_COMMAND(ID_SYS_MUSICOFF, OnSysMusicoff)
	ON_COMMAND(ID_LOG_IN, OnLogIn)
	ON_COMMAND(ID_LOG_OUT, OnLogOut)
	ON_COMMAND(ID_BORROW_RETURN, OnBorrowReturn)
	ON_COMMAND(ID_BOOK_IN_MULTIPLE, OnBookInMultiple)
	ON_COMMAND(ID_TOOL_CALC, OnToolCalc)
	ON_COMMAND(ID_TOOL_CONTROL, OnToolControl)
	ON_COMMAND(ID_TOOL_IP, OnToolIp)
	ON_COMMAND(ID_TOOL_ODBC, OnToolOdbc)
	ON_COMMAND(ID_TOOL_FAR, OnToolFar)
	ON_COMMAND(ID_TOOL_MYSQL, OnToolMysql)
	ON_COMMAND(ID_TOOL_NOTE, OnToolNote)
	ON_COMMAND(ID_BOOK_SELECT, OnBookSelect)
	ON_COMMAND(ID_BORROW_CONTINUE, OnBorrowContinue)
	ON_COMMAND(ID_ADMIN_RETURN, OnAdminReturn)
	ON_COMMAND(ID_ADMIN_STOCK, OnAdminStock)
	ON_COMMAND(ID_BOOK_IN_SINGLE, OnBookInSingle)
	ON_COMMAND(ID_CARD_ADD, OnCardAdd)
	ON_COMMAND(ID_CARD_EDIT, OnCardEdit)
	ON_COMMAND(ID_CARD_DELETE, OnCardDelete)
	ON_COMMAND(ID_ADMIN_PWD, OnAdminPwd)
	ON_COMMAND(ID_BOOK_EDIT, OnBookEdit)
	ON_COMMAND(ID_TOP10, OnTop10)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

static UINT indicators[] =
{
	ID_SEPARATOR,           // status line indicator
	ID_INDICATOR_CAPS,
	ID_INDICATOR_NUM,
	ID_INDICATOR_SCRL,
};

/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction

CMainFrame::CMainFrame()
{
	// TODO: add member initialization code here
	Music_On=0;
	if (!Music_On) PlayMid();
	
}

CMainFrame::~CMainFrame()
{
	if (Music_On) StopMid();
}

//播放背景音乐
void CMainFrame::PlayMid()
{
	Music_On=1;
	HWND hWnd;
	hWnd = GetSafeHwnd();
	//分配命令字符串缓冲,错误信息储存缓冲,播放的文件名
	char szCmdBuf[300],errBuf[60],szfileName[255];
	//错误码
	MCIERROR mciError;
	
	//初始化设备元素
	sprintf(szfileName,"1.mp3"); 
	//初始化命令字符串
	wsprintf( szCmdBuf,"open %s alias LIBRARY",szfileName);// type sequencer alias bkMusic 
	//打开设备
	mciError = mciSendString( szCmdBuf, errBuf, sizeof(errBuf), NULL);
	if (mciError == 0)
	{//如果打开成功则播放
		mciError = mciSendString("play LIBRARY notify repeat",NULL,0, hWnd);
		//根据播放操作是否成功决定是否关闭设备
		if (mciError != 0)
			mciSendString("close LIBRARY",NULL,0,NULL);
	}
	else
	{
		char sss[100];
		sprintf(sss,"打开背景音乐时发生错误!");
		AfxMessageBox(sss);
	}
}

//
//终止插放背景音乐
//
void CMainFrame::StopMid()
{
	Music_On=0;
	//关闭设备
	mciSendString("close LIBRARY",NULL,0,NULL);
}

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CFrameWnd::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
	} 

	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);

	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

	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

void CMainFrame::OnSysMusic() 
{
	// TODO: Add your command handler code here
	if (!Music_On) PlayMid();
}

void CMainFrame::OnSysMusicoff() 
{
	if (Music_On) StopMid();
}


void CMainFrame::OnToolCalc() 
{
	// TODO: Add your command handler code here
	WinExec("CALC",SW_SHOWNORMAL);	
}

void CMainFrame::OnToolControl() 
{
	// TODO: Add your command handler code here
	WinExec("rundll32.exe shell32.dll,Control_RunDLL",SW_SHOWNORMAL);
}

void CMainFrame::OnToolIp() 
{
	// TODO: Add your command handler code here
	WinExec("cmd.exe /k %windir%\\system32\\ipconfig.exe",SW_SHOWNORMAL);	
}

void CMainFrame::OnToolOdbc() 
{
	// TODO: Add your command handler code here
	WinExec("C:\\Windows\\System32\\odbcad32.exe",SW_SHOWNORMAL);
}



void CMainFrame::OnToolFar() 
{
	// TODO: Add your command handler code here
	WinExec("MSTSC",SW_SHOWNORMAL);
	
}


void CMainFrame::OnToolMysql() 
{
	// TODO: Add your command handler code here
	WinExec("C:\\Program Files\\MySQL\\MySQL Tools for 5.0\\MySQLAdministrator.exe",SW_SHOWNORMAL);	
	
}



void CMainFrame::OnToolNote() 
{
	// TODO: Add your command handler code here
	WinExec("notepad",SW_SHOWNORMAL);
}


void CMainFrame::OnBorrowBorrow() 
{
	// TODO: Add your command handler code here
	CBorrowBorrowDlg borrowBorrowDlg;
	CLIBRARYApp *App = (CLIBRARYApp *)AfxGetApp();
	if (App->aID=="XXXXXXXXXX")
	{
		AfxMessageBox("对不起,当前没有管理员权限,不能借书!");
		return;
	}
	borrowBorrowDlg.DoModal();	
}


void CMainFrame::OnLogIn() 
{

	// TODO: Add your command handler code here
	CLIBRARYApp *App = (CLIBRARYApp *)AfxGetApp();
	if (App->aID!="XXXXXXXXXX")
		AfxMessageBox("警告:此操作将自动注销前一位管理员帐号!\n\n如果您不想继续操作,请在接下来的对话框中选择“取消”。");	

	CLogIn LoginDlg;
	LoginDlg.DoModal();
}

void CMainFrame::OnLogOut() 
{
	// TODO: Add your command handler code here
	CLIBRARYApp *App = (CLIBRARYApp *)AfxGetApp();
	if (App->aID=="XXXXXXXXXX")
	{
		AfxMessageBox("当前没有管理员帐号登陆!");
		return;
	}
	CLogOutDlg LogOut;
	LogOut.DoModal();	
}

void CMainFrame::OnBorrowReturn() 
{
	// TODO: Add your command handler code here
	CBorrowReturn ReturnBook;
	CLIBRARYApp *App = (CLIBRARYApp *)AfxGetApp();
	if (App->aID=="XXXXXXXXXX")
	{
		AfxMessageBox("对不起,当前没有管理员权限,不能还书!");
		return;
	}
	ReturnBook.DoModal();		
}

void CMainFrame::OnBookSelect() 
{
	// TODO: Add your command handler code here
	CQueryBasicDlg queryBasicDlg;
	queryBasicDlg.DoModal();
	
}

void CMainFrame::OnBorrowContinue() 
{
	// TODO: Add your command handler code here
	CBorrowContinue ContinueBorrow;
	CLIBRARYApp *App = (CLIBRARYApp *)AfxGetApp();
	if (App->aID=="XXXXXXXXXX")
	{
		AfxMessageBox("对不起,当前没有管理员权限,不能续借图书!");
		return;
	}
	ContinueBorrow.DoModal();	
}


void CMainFrame::OnAdminReturn() 
{
	// TODO: Add your command handler code here
	CAdminReturnDlg AdminReturn;
	CLIBRARYApp *App = (CLIBRARYApp *)AfxGetApp();
	if (App->aID=="XXXXXXXXXX")
	{
		AfxMessageBox("对不起,当前没有管理员权限,不能做此查询!");
		return;
	}
	CTimeSpan span1(45,0,0,0);
	CTimeSpan span2(90,0,0,0);
	AdminReturn.m_OldTime=CTime::GetCurrentTime()-span2;
	AdminReturn.m_NewTime=CTime::GetCurrentTime()-span1;	
	AdminReturn.DoModal();
}





void CMainFrame::OnBookInMultiple() 
{
	CLIBRARYApp *App = (CLIBRARYApp *)AfxGetApp();
	if (App->aID=="XXXXXXXXXX")
	{
		AfxMessageBox("对不起,当前没有管理员权限,不能做图书入库!");
		return;
	}
	CInMultipleDlg InMultiple;
	InMultiple.DoModal();
}


void CMainFrame::OnAdminStock() 
{
	// TODO: Add your command handler code here
	CAdminStockDlg AdminStock;
	CLIBRARYApp *App = (CLIBRARYApp *)AfxGetApp();
	if (App->aID=="XXXXXXXXXX")
	{
		AfxMessageBox("对不起,当前没有管理员权限,不能做此查询!");
		return;
	}
	
	AdminStock.DoModal();
}

void CMainFrame::OnBookInSingle() 
{
	// TODO: Add your command handler code here
	CLIBRARYApp *App = (CLIBRARYApp *)AfxGetApp();
	if (App->aID=="XXXXXXXXXX")
	{
		AfxMessageBox("对不起,当前没有管理员权限,不能做图书入库!");
		return;
	}
	CInSingleDlg InSingle;
	InSingle.DoModal();

}

void CMainFrame::OnCardAdd() 
{
	// TODO: Add your command handler code here
	CLIBRARYApp *App = (CLIBRARYApp *)AfxGetApp();
	if (App->aID=="XXXXXXXXXX")
	{
		AfxMessageBox("对不起,当前没有管理员权限,不能管理借书证!");
		return;
	}
	CCardNewDlg2 cardAdd;
	cardAdd.DoModal();	
}

void CMainFrame::OnCardEdit() 
{
	// TODO: Add your command handler code here
	CLIBRARYApp *App = (CLIBRARYApp *)AfxGetApp();
	if (App->aID=="XXXXXXXXXX")
	{
		AfxMessageBox("对不起,当前没有管理员权限,不能管理借书证!");
		return;
	}	
	CCardEditCno1 CardEditCno;
	CardEditCno.DoModal();
}

void CMainFrame::OnCardDelete() 
{
	// TODO: Add your command handler code here
	CLIBRARYApp *App = (CLIBRARYApp *)AfxGetApp();
	if (App->aID=="XXXXXXXXXX")
	{
		AfxMessageBox("对不起,当前没有管理员权限,不能管理借书证!");
		return;
	}	
	CCardDeleteCno CardDeleteCno;
	CardDeleteCno.DoModal();	
}

void CMainFrame::OnAdminPwd() 
{
	// TODO: Add your command handler code here
	CLIBRARYApp *App = (CLIBRARYApp *)AfxGetApp();
	if (App->aID=="XXXXXXXXXX")
	{
		AfxMessageBox("对不起,请先登录再修改密码!");
		return;
	}	
	CAdminPwd adminpw;
	adminpw.DoModal();
}

void CMainFrame::OnBookEdit() 
{
	// TODO: Add your command handler code here
	CLIBRARYApp *App = (CLIBRARYApp *)AfxGetApp();
	if (App->aID=="XXXXXXXXXX")
	{
		AfxMessageBox("对不起,当前没有管理员权限,不能查询和编辑图书信息!");
		return;
	}
	CBookEditInDlg bookeditIn;
	bookeditIn.DoModal();
}

void CMainFrame::OnTop10() 
{
	// TODO: Add your command handler code here
	CTop10Dlg c10;
	c10.DoModal();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?