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

📄 mainfrm.cpp

📁 一套人事管理系统
💻 CPP
字号:
// MainFrm.cpp : implementation of the CMainFrame class
//

#include "stdafx.h"
#include "ZHURUI_JK02_人事管理.h"
#include "MainFrm.h"
#include"ZHURUI_JK02_人事管理Doc.h"
#include"ZHGSET.h"
#include"ZHGVIEW.h"
#include"SAMDLG.h"
#include"LOGIONDLG.h"
#include"ZHURUI_JK02_人事管理Set.h"
#include"ZHURUI_JK02_人事管理View.h"
#include"TXLSet.h"
#include"TXLView.h"
#include "KAOQINSET.h"
#include "KAOQINVIEW.h"
#include"KAOCHASET.h"
#include"KAOCHAVIEW.h"
#include"SETSET.h"
#include"SETVIEW.h"
#include"MIMADLG.h"
#include"TONGJIDLG.h"
#include"BUMENDLG.h"
#include "mmsystem.h"
#pragma comment (lib,"WINMM.LIB")

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



CRect rc(0,0,871,10);
/////////////////////////////////////////////////////////////////////////////
// CMainFrame

IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
	//{{AFX_MSG_MAP(CMainFrame)
	ON_WM_CREATE()
	ON_COMMAND(IDM_XINXI, OnXinxi)
	ON_COMMAND(IDM_ZGXX, OnZgxx)
	ON_BN_CLICKED(IDC_ZGGL, OnZggl)
	ON_BN_CLICKED(IDC_TXL, OnTxl)
	ON_BN_CLICKED(IDC_TUICHU, OnTuichu)
	ON_BN_CLICKED(IDC_TONGJI, OnTongji)
	ON_BN_CLICKED(IDC_MIMA, OnMima)
	ON_BN_CLICKED(IDC_KAOQIN, OnKaoqin)
	ON_BN_CLICKED(IDC_KAOCHA, OnKaocha)
	ON_BN_CLICKED(IDC_DENGLU, OnDenglu)
	ON_BN_CLICKED(IDC_CHAXUN, OnChaxun)
	ON_BN_CLICKED(IDC_CANSHU, OnCanshu)
	ON_BN_CLICKED(IDC_BUMEN, OnBumen)
	ON_WM_NCMOUSEMOVE() 
	ON_WM_NCLBUTTONDOWN()
	ON_WM_PAINT()
	ON_WM_KILLFOCUS()
	ON_WM_SETFOCUS()
	ON_WM_TIMER()
	ON_COMMAND(IDM_ZHGTXL, OnZhgtxl)
	ON_COMMAND(IDM_BANGZHU, OnBangzhu)
	ON_BN_CLICKED(IDC_XINXI, OnXinxi)
	ON_COMMAND(IDM_BUMEN, OnBumen)
	ON_COMMAND(IDM_CANSHU, OnCanshu)
	ON_COMMAND(IDM_TUICHU, OnTuichu)
	ON_COMMAND(IDM_KAOQIN, OnKaoqin)
	ON_COMMAND(IDM_KAOCHA, OnKaocha)
	ON_COMMAND(IDM_DENGLU, OnDenglu)
	ON_COMMAND(IDM_MIMA, OnMima)
	ON_COMMAND(IDM_CHAXUN, OnChaxun)
	ON_COMMAND(IDM_TONGJI, OnTongji)
	ON_WM_CLOSE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

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

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

CMainFrame::CMainFrame()
{
	// TODO: add member initialization code here
	
}

CMainFrame::~CMainFrame()
{
}

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	if (!m_wndToolBar.Create(this,IDR_MAINFRAME,WS_CHILD|WS_VISIBLE|CBRS_TOP,AFX_IDW_STATUS_BAR))
	{
		TRACE0("Failed to create toolbar\n");
		return -1;      // fail to create
	}
/*	if (!m_wndDlgBar.Create(this,IDD_DIALOG1,WS_CHILD|WS_VISIBLE|CBRS_TOP,AFX_IDW_STATUS_BAR))
	{
		TRACE0("Failed to create dialogbar\n");
		return -1;		// fail to create
	}
*/
	if (!m_wndReBar.Create(this) ||
		!m_wndReBar.AddBar(&m_wndToolBar))// ||
	//	!m_wndReBar.AddBar(&m_wndDlgBar))
	{
		TRACE0("Failed to create rebar\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: Remove this if you don't want tool tips
//		m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
//			CBRS_TOOLTIPS | CBRS_FLYBY);
//	m_wndToolBar.Create(this,IDD_DIALOG1,WS_CHILD|WS_VISIBLE|CBRS_TOP,AFX_IDW_STATUS_BAR);

	m_btn_XINXI.AutoLoad(IDC_XINXI,&m_wndToolBar);
	m_btn_ZGGL.AutoLoad(IDC_ZGGL,&m_wndToolBar);
	m_btn_MIMA.AutoLoad(IDC_MIMA,&m_wndToolBar);
	m_btn_DL.AutoLoad(IDC_DENGLU,&m_wndToolBar);
	m_btn_TXL.AutoLoad(IDC_TXL,&m_wndToolBar);
	m_btn_KAOQIN.AutoLoad(IDC_KAOQIN,&m_wndToolBar);
	m_btn_CHAXUN.AutoLoad(IDC_CHAXUN,&m_wndToolBar);
	m_btn_TONGJI.AutoLoad(IDC_TONGJI,&m_wndToolBar);
	m_btn_KAOCHA.AutoLoad(IDC_KAOCHA,&m_wndToolBar);
	m_btn_BUMEN.AutoLoad(IDC_BUMEN,&m_wndToolBar);
	m_btn_CANSHU.AutoLoad(IDC_CANSHU,&m_wndToolBar);
	m_btn_TUICHU.AutoLoad(IDC_TUICHU,&m_wndToolBar);

	m_btn_XINXI.m_pbtn=(CSAMBTN*)m_wndToolBar.GetDlgItem(IDC_XINXI);
	m_btn_ZGGL.m_pbtn=(CSAMBTN*)m_wndToolBar.GetDlgItem(IDC_ZGGL);
	m_btn_MIMA.m_pbtn=(CSAMBTN*)m_wndToolBar.GetDlgItem(IDC_MIMA);
	m_btn_DL.m_pbtn=(CSAMBTN*)m_wndToolBar.GetDlgItem(IDC_DENGLU);
	m_btn_TXL.m_pbtn=(CSAMBTN*)m_wndToolBar.GetDlgItem(IDC_TXL);
	m_btn_KAOQIN.m_pbtn=(CSAMBTN*)m_wndToolBar.GetDlgItem(IDC_KAOQIN);
	m_btn_CHAXUN.m_pbtn=(CSAMBTN*)m_wndToolBar.GetDlgItem(IDC_CHAXUN);
	m_btn_TONGJI.m_pbtn=(CSAMBTN*)m_wndToolBar.GetDlgItem(IDC_TONGJI);
	m_btn_KAOCHA.m_pbtn=(CSAMBTN*)m_wndToolBar.GetDlgItem(IDC_KAOCHA);
	m_btn_BUMEN.m_pbtn=(CSAMBTN*)m_wndToolBar.GetDlgItem(IDC_BUMEN);
	m_btn_CANSHU.m_pbtn=(CSAMBTN*)m_wndToolBar.GetDlgItem(IDC_CANSHU);
	m_btn_TUICHU.m_pbtn=(CSAMBTN*)m_wndToolBar.GetDlgItem(IDC_TUICHU);

	Logion();
	SetTimer(1,1000,NULL);
	SetTimer(2,300,NULL);
	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.dwExStyle=cs.dwExStyle; 
	cs.style=WS_SYSMENU|WS_OVERLAPPED;//|WS_MINIMIZEBOX;  //固定窗口大小,取消窗口最大化和最小化按钮
	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::OnXinxi() 
{
	// TODO: Add your command handler code here
	ChangeForm(IDD_ZHURUI_JK02__FORM);
}

void CMainFrame::OnZgxx() 
{
	// TODO: Add your command handler code here
	ChangeForm(IDD_ZHG_FORM);
}

void CMainFrame::ChangeForm(int nForm)
{
	CView* pOldActiveView=GetActiveView(); 
	CView* pNewActiveView=(CView*)GetDlgItem(nForm); 
	if(pNewActiveView==NULL) 
	{ 
		switch(nForm) 
		{ 
		case IDD_ZHURUI_JK02__FORM: 
			pNewActiveView=(CView*)new CZHURUI_JK02_View; 
			break; 
		case IDD_ZHG_FORM: 
			pNewActiveView=(CView*)new CZHGVIEW; 
			break; 
		case IDD_TXLFORM:
			pNewActiveView=(CView*)new CTXLView; 
			break;
		case IDD_KAOQIN:
			pNewActiveView=(CView*)new CKAOQINVIEW; 
			break;
		case IDD_KAOCHAFORM:
			pNewActiveView=(CView*)new CKAOCHAVIEW; 
			break;
		case IDD_SETFORM:
			pNewActiveView=(CView*)new CSETVIEW; 
			break;

		} 
		CCreateContext context; 
		context.m_pCurrentDoc=pOldActiveView->GetDocument();
		pNewActiveView->Create(NULL,NULL,0L,CFrameWnd::rectDefault,this,nForm,&context); 
		pNewActiveView->OnInitialUpdate(); 
	} 
	SetActiveView(pNewActiveView); 
	pNewActiveView->ShowWindow(SW_SHOW); 
	pOldActiveView->ShowWindow(SW_HIDE); 
	if(pOldActiveView->GetRuntimeClass()==RUNTIME_CLASS(CZHURUI_JK02_View)) 
		pOldActiveView->SetDlgCtrlID(IDD_ZHURUI_JK02__FORM); 
	else 
		if(pOldActiveView->GetRuntimeClass()==RUNTIME_CLASS(CZHGVIEW)) 
			pOldActiveView->SetDlgCtrlID(IDD_ZHG_FORM); 
		else
			if(pOldActiveView->GetRuntimeClass()==RUNTIME_CLASS(CTXLView))
				pOldActiveView->SetDlgCtrlID(IDD_TXLFORM);
			else
				if(pOldActiveView->GetRuntimeClass()==RUNTIME_CLASS(CKAOQINVIEW))
					pOldActiveView->SetDlgCtrlID(IDD_KAOQIN);
				else
					if(pOldActiveView->GetRuntimeClass()==RUNTIME_CLASS(CKAOCHAVIEW))
					pOldActiveView->SetDlgCtrlID(IDD_KAOCHAFORM);
					else
						if(pOldActiveView->GetRuntimeClass()==RUNTIME_CLASS(CSETVIEW))
					pOldActiveView->SetDlgCtrlID(IDD_SETFORM);
		pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST); 
		RecalcLayout(); 

}

void CMainFrame::OnZggl() 
{
	// TODO: Add your control notification handler code here
	ChangeForm(IDD_ZHG_FORM);
}

void CMainFrame::OnTxl() 
{
	// TODO: Add your control notification handler code here
	ChangeForm(IDD_TXLFORM);
}

void CMainFrame::OnTuichu() 
{
	// TODO: Add your control notification handler code here
	InvalidateRect(&rc);
	if(IDYES==AfxMessageBox("真的要退出么?",MB_YESNO))
	{
		PostQuitMessage(0);
	}
	InvalidateRect(&rc);
}

void CMainFrame::OnTongji() 
{
	// TODO: Add your control notification handler code here
	CTONGJIDLG samdlg;
	samdlg.DoModal();

}

void CMainFrame::OnMima() 
{
	// TODO: Add your control notification handler code here
	CMIMADLG dlg;
	dlg.DoModal();

}

void CMainFrame::OnKaoqin() 
{
	// TODO: Add your control notification handler code here
	CDatabase db;
	CRecordset rs(&db);
	db.Open("sam人事管理");
	CString strUser;
	rs.Open(CRecordset::forwardOnly,"select ID from 当前用户 where POS=1");
	rs.GetFieldValue("ID",strUser);
	if(strUser=="人事部    " )
	{
		ChangeForm(IDD_KAOQIN);
	}
	else
	{
		AfxMessageBox("您没有相关权限!");
	}
}

void CMainFrame::OnKaocha() 
{
	// TODO: Add your control notification handler code here
	ChangeForm(IDD_KAOCHAFORM);
}

void CMainFrame::OnDenglu() 
{
	// TODO: Add your control notification handler code here
	Logion();
}

void CMainFrame::OnChaxun() 
{
	// TODO: Add your control notification handler code here
	ChangeForm(IDD_ZHG_FORM);

}

void CMainFrame::OnCanshu() 
{
	// TODO: Add your control notification handler code here
	ChangeForm(IDD_SETFORM);
}

void CMainFrame::OnBumen() 
{
	// TODO: Add your control notification handler code here
	CBUMENDLG samdlg;
	samdlg.DoModal();

}


void CMainFrame::OnNcMouseMove(UINT nHitTest, CPoint point)
{
		CDC* dc;
	dc=GetWindowDC();
	CDC memdc;
	memdc.CreateCompatibleDC(dc);
	CRect rc_window,rc_min,rc_close;
	GetWindowRect(&rc_window);

	rc_min.left=rc_window.right-90;
	rc_min.right=rc_window.right-65;
	rc_min.top=rc_window.top;
	rc_min.bottom=rc_window.top+21;

	rc_close.left=rc_window.right-32;
	rc_close.right=rc_window.right-7;
	rc_close.top=rc_window.top;
	rc_close.bottom=rc_window.top+21;


	CBitmap bmp,bmp1,*oldbmp;

	if(rc_min.PtInRect(point))
	{
		bmp.LoadBitmap("IDB_MIN");
	}
	else
		if(rc_close.PtInRect(point))
		{
			bmp.LoadBitmap("IDB_CLOSE");
			
		}
		else
		{
			bmp.LoadBitmap("IDB_NORMAL");
		}
		oldbmp=memdc.SelectObject(&bmp);
		dc->BitBlt(rc.Width()-93,0,93,30,&memdc,0,0,SRCCOPY);

        bmp1.LoadBitmap("IDB_TOP");
		memdc.SelectObject(&bmp1);
		dc->BitBlt(0,0,rc.Width(),30,&memdc,0,0,SRCCOPY);
		memdc.SelectObject(oldbmp);
		bmp1.DeleteObject();
		bmp.DeleteObject();
		ReleaseDC(&memdc);
		ReleaseDC(dc);
		
		
	memdc.DeleteDC();
	
//	dc->DeleteDC();

}

void CMainFrame::OnNcLButtonDown(UINT nHitTest, CPoint point)
{
	CRect rc_window,rc_min,rc_close;
	GetWindowRect(&rc_window);
	
	rc_min.left=rc_window.right-90;
	rc_min.right=rc_window.right-65;
	rc_min.top=rc_window.top;
	rc_min.bottom=rc_window.top+21;
	
	rc_close.left=rc_window.right-32;
	rc_close.right=rc_window.right-7;
	rc_close.top=rc_window.top;
	rc_close.bottom=rc_window.top+21;
	
	
	
	if(rc_min.PtInRect(point))
	{
		//this->ShowWindow(SW_HIDE);
		SendMessage(WM_SYSCOMMAND, SC_MINIMIZE, MAKELPARAM(point.x, point.y));		
	}
	else
		if(rc_close.PtInRect(point))
		{
			SendMessage(WM_CLOSE);
		}
		else
		{
			Default();
		}
		
}


int flag=0;
void CMainFrame::OnPaint() 
{
	if(flag!=1)
	{
		this->SetWindowPos(NULL,0,0,871,670,SWP_NOMOVE);
		this->CenterWindow();
		flag=1;
	}
	CPaintDC dc0(this); // device context for painting
	CDC* dc;
	dc=this->GetWindowDC();
	CDC memdc;
	memdc.CreateCompatibleDC(dc);
	CBitmap bmp,bmp1;
	bmp.LoadBitmap("IDB_TOP");
	memdc.SelectObject(&bmp);
	CRect rc,rc_client;
	this->GetWindowRect(&rc);
	dc->BitBlt(0,0,rc.Width(),30,&memdc,0,0,SRCCOPY);
	bmp.DeleteObject();
	bmp1.LoadBitmap("IDB_NORMAL");
	memdc.SelectObject(&bmp1);
	dc->BitBlt(rc.Width()-93,0,93,30,&memdc,0,0,SRCCOPY);
	memdc.DeleteDC();
//	dc->DeleteDC();
}


void CMainFrame::PlaySnd()
{
    HINSTANCE h=AfxGetInstanceHandle();
	HRSRC hr=FindResource(h,"IDW_PRESS","WAVE");
	HGLOBAL hg=LoadResource(h,hr);
	LPSTR lp=(LPSTR)LockResource(hg);
	sndPlaySound(lp,SND_MEMORY|SND_ASYNC);
	FreeResource(hg);
}

void CMainFrame::OnKillFocus(CWnd* pNewWnd) 
{
	CFrameWnd::OnKillFocus(pNewWnd);
	
	// TODO: Add your message handler code here
	InvalidateRect(&rc);
}

BOOL CMainFrame::OnCommand(WPARAM wParam, LPARAM lParam) 
{
	// TODO: Add your specialized code here and/or call the base class
	InvalidateRect(&rc);
	return CFrameWnd::OnCommand(wParam, lParam);
}

void CMainFrame::OnSetFocus(CWnd* pOldWnd) 
{
	CFrameWnd::OnSetFocus(pOldWnd);

	// TODO: Add your message handler code here
	
}
int dd=0,hh=0,mm=0,ss=0,ii=0;
char s[30];
void CMainFrame::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	if(nIDEvent==1)
	{
		time_t t = time(0);  //产生"YYYY-MM-DD hh:mm:ss"格式的字符串。 
			
			dd++;
			ss=dd%60;
			if(ss==59)
			{
				mm++;
			}
			mm=mm%60;
			if(mm==59)
			{
				hh++;
			}
			hh=hh%24;
			strftime(s, sizeof(s), "当前时间:%Y-%m-%d %H:%M:%S", localtime(&t));
	}
	if(nIDEvent==2)
	{
		CString str;
		CMainFrame *pFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd;
		CStatusBar* pStatus=&pFrame->m_wndStatusBar;
		if(pStatus)
		{
			
			CString strLOGO="                              sam 课程设计  指导教师:王静文";
			if(ii>56)
			{
				ii=0;
			}
			ii+=2;
			strLOGO=strLOGO.Mid(ii);
			
			str.Format("【%s】【当前用户ID:%s】【程序已运行%d时%d分%d秒】         %s",s,m_USER,hh,mm,ss,strLOGO);
			pStatus->SetPaneText(0,str);			
		}
	}
	CFrameWnd::OnTimer(nIDEvent);
}


int logionflag=0;
void CMainFrame::Logion()
{
	CLOGIONDLG  dlg;//登陆模拟08-12-02;
	if(IDCANCLE==dlg.DoModal() && logionflag==0 )
	{
		PostQuitMessage(0);
	}
	else
		if( dlg.m_LOGION==0 && logionflag==0)
		{
			PostQuitMessage(0);
		}
		else
			if( dlg.m_LOGION==1)
		{
			m_USER=dlg.m_YHM;
			CDatabase dbtmp;
			dbtmp.Open("sam人事管理");
			CString strSQL=" update 当前用户 \
							 set\
							     ID='"+m_USER+"'\
							 where POS=1;";
		dbtmp.ExecuteSQL(strSQL); 
		dbtmp.Close();
		logionflag=1;	
		}

}

void CMainFrame::OnZhgtxl() 
{
	// TODO: Add your command handler code here
	OnTxl() ;
}

void CMainFrame::OnBangzhu() 
{
	// TODO: Add your command handler code here
	MessageBox("准备中!");
}

void CMainFrame::OnClose() 
{
	// TODO: Add your message handler code here and/or call default
	InvalidateRect(&rc);
	if(IDYES==AfxMessageBox("真的要退出么?",MB_YESNO))
	{

		PostQuitMessage(0);
		
	}
	InvalidateRect(&rc);
	
}

⌨️ 快捷键说明

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