www.pudn.com > rsdagl.rar > MainFrm.cpp


// MainFrm.cpp : CMainFrame 类的实现 
// 
 
#include "stdafx.h" 
#include "人事管理系统.h" 
#include "modifypassword.h" 
#include "AddDate.h" 
#include "AddUser.h" 
#include "DelAdmin.h" 
#include "jiansuo.h" 
#include "MainFrm.h" 
#include ".\mainfrm.h" 
#include "MainQuery.h" 
#include "TixingXT.h" 
#include "txxxshow.h" //提醒系统 
#include "regbox.h" 
#include "Zhuce.h" 
 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#endif 
 
 
 
// CMainFrame 
 
IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd) 
 
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) 
	ON_WM_CREATE() 
	ON_COMMAND(ID_ID1,OnMainQuery) 
	ON_COMMAND(ID_ID2,OnAddDate) 
	ON_COMMAND(ID_ID3,OnCKTX) 
	ON_COMMAND(ID_ID4,OnID4) 
	ON_COMMAND(ID_ID5,OnRSTX) 
	ON_COMMAND(ID_ID6,OnID6) 
	ON_COMMAND(ID_DELUSER,OndelUser) 
	ON_COMMAND(ID_HELP,OnIDHELP) 
	ON_COMMAND(ID_PRINTFILE,OnPrintFile) 
	ON_COMMAND(IDD_ONMODIFYPASSWORD,OnModifyPassword) 
	ON_COMMAND(ID_ADDUSER,OnAddUser) 
	ON_MESSAGE(XTWM_OUTBAR_NOTIFY, OnOutbarNotify) 
	ON_WM_DESTROY() 
	ON_WM_QUERYOPEN() 
	ON_COMMAND(ID_MENUPASS, OnMenupass) 
	ON_COMMAND(ID_32795, OnMenuModifyPassword) 
	ON_COMMAND(ID_DeleteUser, OnMenuDeleteuser) 
	ON_COMMAND(ID_MENUPRINTFILE, OnMenuprintfile) 
	ON_COMMAND(ID_MENURSTX, OnMenurstx) 
	ON_COMMAND(ID_MENUCKTX, OnMenucktx) 
	ON_COMMAND(ID__MENUTJXX, OnMENUtjxx) 
	ON_COMMAND(ID__MENUXXLL, OnMenuxxll) 
	ON_COMMAND(ID__MENUXXCX, OnMenuxxcx) 
	ON_COMMAND(ID_MENUHELP, OnMenuhelp) 
	ON_COMMAND(ID__MENUXGXX, OnMenuxgxx) 
	ON_COMMAND(ID__MENUSCXX, OnMenuscxx) 
END_MESSAGE_MAP() 
 
static UINT indicators[] = 
{ 
	ID_SEPARATOR,           // 状态行指示器 
	//ID_INDICATOR_CAPS, 
	ID_ADMINNAME, 
	//ID_INDICATOR_NUM, 
	ID_TIMESHOW, 
	ID_SHOWINFO, 
}; 
 
 
// CMainFrame 构造/析构 
 
CMainFrame::CMainFrame() 
: m_bDestroy(false) 
, m_isMainQuery(false) 
, m_pMainQre(NULL) 
, m_zhuce(_T("")) 
{ 
	// TODO: 在此添加成员初始化代码 
} 
 
CMainFrame::~CMainFrame() 
{ 
} 
 
 
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("未能创建工具栏\n"); 
		return -1;      // 未能创建 
	} 
 
	if (!m_wndStatusBar.Create(this) || 
		!m_wndStatusBar.SetIndicators(indicators, 
		  sizeof(indicators)/sizeof(UINT))) 
	{ 
		TRACE0("未能创建状态栏\n"); 
		return -1;      // 未能创建 
	} 
	// TODO: 如果不需要工具栏可停靠,则删除这三行 
	 
	CBitmap m_bmp; 
	m_bmp.Attach(::LoadImage(AfxGetResourceHandle(),"list_hot",IMAGE_BITMAP,0, 0,LR_DEFAULTSIZE|LR_CREATEDIBSECTION)); 
	m_NormalList.Create(16,16,ILC_COLOR24|ILC_MASK, 0, 0); 
	m_NormalList.Add(&m_bmp,RGB(192,192,192)) ; 
	m_bmp.Detach(); 
	m_wndToolBar.SendMessage(TB_SETIMAGELIST,0,(LPARAM)m_NormalList.m_hImageList); 
	m_bmp.Attach(::LoadImage(AfxGetResourceHandle(), "LIST_NORMAL",IMAGE_BITMAP, 
               0, 0,LR_DEFAULTSIZE|LR_CREATEDIBSECTION)); 
	m_hotList.Create(16, 16, ILC_COLOR24|ILC_MASK, 0, 0); 
	m_hotList.Add(&m_bmp,RGB(192,192,192)) ; 
	m_bmp.Detach(); 
	m_wndToolBar.SendMessage(TB_SETHOTIMAGELIST,0,(LPARAM)m_hotList.m_hImageList); 
	 
	m_bmp.Attach(::LoadImage(AfxGetResourceHandle(), "list_disable",IMAGE_BITMAP, 
               0, 0,LR_DEFAULTSIZE|LR_CREATEDIBSECTION)); 
	m_DisableList.Create(16, 16, ILC_COLOR24|ILC_MASK, 0, 0); 
	m_DisableList.Add(&m_bmp,RGB(192,192,192)) ; 
	m_bmp.Detach(); 
	m_wndToolBar.SendMessage(TB_SETDISABLEDIMAGELIST,0,(LPARAM)m_DisableList.m_hImageList); 
	///给工具条加文本 
	for(int i=0;iOpen("SELECT * FROM 注册信息",theApp.m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); 
	} 
	catch(_com_error se) 
	{ 
		AfxMessageBox(se.ErrorMessage()); 
		return false; 
	} 
	m_pRecordset->MoveFirst(); 
	m_zhuce=m_pRecordset->GetCollect("注册状态"); 
	if(m_zhuce=="1") 
	{ 
		cs.lpszName=_T("人事管理系统---软件课程设计2(已注册!)"); 
	} 
	if(m_zhuce=="0") 
	{ 
		cs.lpszName=_T("人事管理系统---软件课程设计2(未注册!)"); 
	} 
 
 	cs.style&=~WS_MAXIMIZEBOX; 
	cs.style&=~WS_THICKFRAME; 
 
	cs.cx=xSize*(0.90); //设置屏幕初始大小 
	cs.cy=ySize*(0.83); 
	//cs.x=0; 
	//cs.y=0; 
	 
 
	return TRUE; 
} 
 
 
// CMainFrame 诊断 
 
#ifdef _DEBUG 
void CMainFrame::AssertValid() const 
{ 
	CFrameWnd::AssertValid(); 
} 
 
void CMainFrame::Dump(CDumpContext& dc) const 
{ 
	CFrameWnd::Dump(dc); 
} 
 
#endif //_DEBUG 
 
 
// CMainFrame 消息处理程序 
 
 
BOOL CMainFrame::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle , const RECT& rect , CWnd* pParentWnd , LPCTSTR lpszMenuName , DWORD dwExStyle , CCreateContext* pContext) 
{ 
	// TODO: 在此添加专用代码和/或调用基类 
 
	//把系统路径放入内存中,随时调用。 
	m_AdminInfo.SystemPath=theApp.SystemPath; 
 
	 
	return CFrameWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, lpszMenuName, dwExStyle, pContext); 
} 
void CMainFrame::OnMainQuery() //打开主查询窗口 
{ 
	if(!m_isMainQuery) 
	{ 
		m_pMainQre=new CMainQuery; 
		m_pMainQre->Create(IDD_MAINQUERY); 
		m_pMainQre->ShowWindow(SW_SHOW); 
		m_isMainQuery = true; 
	} 
	if(m_isMainQuery) 
	{ 
		m_pMainQre->m_listview.DeleteAllItems(); 
		  m_pMainQre->InitDatabase(); 
		m_pMainQre->InitAllDate(); 
	} 
	m_pMainQre->ShowWindow(SW_SHOW); 
 
 
} 
void CMainFrame::OnAddDate()  //添加人事窗口 
{ 
	if(theApp.m_quanxian=="0") 
	{ 
		MessageBox("您无此权限!"); 
		return; 
	} 
	//MessageBox(m_AdminInfo.password); 
	CAddDate ct; 
	ct.DoModal(); 
} 
void CMainFrame::OnCKTX() 
{ 
    CTxxxShow cs; 
	cs.DoModal(); 
} 
void CMainFrame::OnID4() //信息检索  
{ 
	CJianSuo cs; 
	cs.DoModal(); 
} 
void CMainFrame::OnRSTX() 
{ 
	if(theApp.m_quanxian=="0") 
	{ 
		MessageBox("您无此权限!"); 
		return; 
	} 
	CTixingXT cs; 
	cs.DoModal(); 
} 
void CMainFrame::OnID6() //退出系统 
{ 
	if(AfxMessageBox("确定退出人事管理系统么?",MB_YESNO)==IDYES) 
	{ 
		delete theApp.m_pMainWnd; 
		theApp.m_pMainWnd=NULL; 
	} 
	else 
		return; 
	//	return FALSE; 
     
	AfxMessageBox("运行菜单6"); 
} 
void CMainFrame::OnIDHELP() 
{ 
	ShellExecute(0,"open","help.chm",NULL, NULL, SW_SHOWNORMAL); 
} 
void CMainFrame::OnPrintFile() 
{ 
	if(m_zhuce=="0") 
	{ 
		m_pRecordset.CreateInstance(_uuidof(Recordset)); 
		try 
		{ 
			m_pRecordset->Open("SELECT * FROM 注册信息",theApp.m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText); 
		} 
		catch(_com_error se) 
		{ 
			AfxMessageBox(se.ErrorMessage()); 
			return ; 
		} 
		CZhuce zc; 
		if(zc.DoModal()==IDOK) 
		{ 
			m_pRecordset->MoveFirst(); 
			if(zc.m_zhucema=="qwertyuiop") 
			{ 
				try 
				{ 
					_variant_t vAffected; 
					 
					CString Sqlcommand; //执行SQL语句 
					Sqlcommand.Format("UPDATE 注册信息 SET 注册状态=1"); 
					theApp.m_pConnection->Execute(_bstr_t(Sqlcommand),&vAffected,adCmdText); 
				} 
				catch(_com_error e) 
				{ 
					return; 
				} 
			} 
		} 
	} 
	else if(m_zhuce=="1") 
		AfxMessageBox("该软件已注册,请勿重复注册!"); 
 
} 
void CMainFrame::OnModifyPassword() 
{ 
	if(theApp.m_quanxian=="0") 
	{ 
		MessageBox("您无此权限!"); 
		return; 
	} 
	CModifyPassword cs; 
	cs.DoModal(); 
} 
void CMainFrame::OnAddUser() 
{ 
	 
	if(theApp.m_quanxian=="0") 
	{ 
		MessageBox("您无此权限!"); 
		return; 
	} 
    CAddUser cs; 
	cs.DoModal(); 
} 
 
 
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) 
{ 
	// TODO: 在此添加专用代码和/或调用基类 
 
 
 
	// 分割视图 
	if (!m_wndSplitter.CreateStatic(this, 1, 2)) 
		return FALSE; 
 
	// 创建抽屉区域并设置为视图主区域 
	if (!m_wndOutlookBar.Create(WS_CHILD|WS_VISIBLE|WS_CLIPCHILDREN, CRect(0,0,0,0), 
		&m_wndSplitter, m_wndSplitter.IdFromRowCol(0, 0), OBS_XT_DEFAULT)) 
	{ 
		TRACE0("创建工具条失败!."); 
		return FALSE; 
	} 
 
	if (!m_wndSplitter.CreateView(0, 1, pContext->m_pNewViewClass, 
		CSize(100, 100), pContext)) 
	{ 
		m_wndSplitter.DestroyWindow(); 
		return FALSE; 
	} 
 
	// 设置抽屉区域背景色和字样颜色 
	m_wndOutlookBar.SetBackColor(RGB(55,80,147)); 
	m_wndOutlookBar.SetTextColor(RGB(255,255,0)); 
 
 
	// Set the default sizes for the splitter panes. 
	CRect r; 
	GetClientRect(&r); 
	m_wndSplitter.SetColumnInfo( 0, r.Width()/3, 0 ); 
	m_wndSplitter.RecalcLayout(); 
 
	// Add items to the outlook bar. 
	InitializeOutlookBar(); 
 
	 
	return TRUE; 
 
 
 
//	return CFrameWnd::OnCreateClient(lpcs, pContext); 
} 
static UINT nIcons[] = 
{ 
    IDI_ICON2, IDI_ICON3,  IDI_ICON4,  IDI_ICON5, 
    IDI_ICON6, IDI_ICON7,  IDI_ICON8, IDI_ICON9, 
    IDI_ICON10, IDI_ICON11,IDI_ICON13,IDI_ICON14 
	 
}; 
 
void CMainFrame::InitializeOutlookBar(void) 
{ 
	// 创建图形列表 
	m_ImageSmall.Create (32, 32, ILC_COLOR32|ILC_MASK, 2, 1); 
	m_ImageLarge.Create (32, 32, ILC_COLOR32|ILC_MASK, 2, 1); 
	// 初始化图形列表 
 
	for (int i = 0; i <12; ++i) 
	{ 
		HICON hIcon = AfxGetApp()->LoadIcon(nIcons[i]); 
		ASSERT(hIcon); 
 
		m_ImageSmall.Add(hIcon); 
		m_ImageLarge.Add(hIcon); 
	} 
 
	int iFolder; // index of the added folder 
	// set the image lists for the outlook bar. 
	m_wndOutlookBar.SetImageList(&m_ImageLarge, OBS_XT_LARGEICON); 
	m_wndOutlookBar.SetImageList(&m_ImageSmall, OBS_XT_SMALLICON); 
 
	// Add the first folder to the outlook bar. 
 
 
 
	iFolder = m_wndOutlookBar.AddFolder(_T("控制面版"),0); 
 
	// Add items to the folder, syntax is folder, index, text, image, and item data. 
	m_wndOutlookBar.InsertItem(iFolder, 1, _T("档案管理"), 1, NULL); 
	m_wndOutlookBar.InsertItem(iFolder, 2, _T("添加信息"), 2, NULL); 
	//m_wndOutlookBar.InsertItem(iFolder, 3, _T("职称评定"), 3, NULL); 
	m_wndOutlookBar.InsertItem(iFolder, 3, _T("条件查询"), 4, NULL); 
	m_wndOutlookBar.InsertItem(iFolder, 4, _T("人事提醒"), 5, NULL); 
	m_wndOutlookBar.InsertItem(iFolder, 5, _T("查看提醒"), 6, NULL); 
	 
 
 
	// Add items to the folder, syntax is folder, index, text, image, and item data. 
	iFolder = m_wndOutlookBar.AddFolder(_T("系统设置"), 1); 
	m_wndOutlookBar.InsertItem(iFolder, 1, _T("密码设置"), 7, NULL); 
	m_wndOutlookBar.InsertItem(iFolder, 2, _T("添加用户"), 8, NULL); 
	m_wndOutlookBar.InsertItem(iFolder, 3, _T("删除用户"), 9, NULL); 
	 
 
 
 
	// Add the second folder to the outlook bar. 
	// We want to receive notification messages. 
	m_wndOutlookBar.SetOwner(this); 
 
 
	// Select the first folder in the bar. 
	m_wndOutlookBar.SetSelFolder(0); 
 
	// Sizing for splitter 
	CRect r; 
	GetClientRect(&r); 
	m_wndSplitter.SetColumnInfo( 0, r.Width()/7, 0 ); 
	m_wndSplitter.SetColumnInfo( 1, r.Width()/5, 0 ); 
 
} 
LRESULT CMainFrame::OnOutbarNotify(WPARAM wParam,LPARAM lParam) 
{ 
	int nBarAction = (int)wParam; 
 
	// Cast the lParam to a XT_OUTBAR_INFO* struct pointer. 
	XT_OUTBAR_INFO* pOBInfo = (XT_OUTBAR_INFO*)lParam; 
	ASSERT(pOBInfo); 
 
	switch (nBarAction)  //消息队列 
	{ 
	case OBN_XT_ITEMCLICK: 
		{ 
		CString strMess=pOBInfo->lpszText; 
		if(strcmp(strMess,"档案管理")==0) 
			OnMainQuery(); 
		if(strcmp(strMess,"添加信息")==0) 
			OnAddDate(); 
		//if(strcmp(strMess,"职称评定")==0) 
		//	MessageBox("!!!"); 
		if(strcmp(strMess,"条件查询")==0) 
			OnID4(); 
		if(strcmp(strMess,"人事提醒")==0) 
			OnRSTX(); 
		if(strcmp(strMess,"查看提醒")==0) 
			OnCKTX(); 
		if(strcmp(strMess,"密码设置")==0) 
			OnModifyPassword(); 
		if(strcmp(strMess,"添加用户")==0) 
			OnAddUser(); 
		if(strcmp(strMess,"删除用户")==0) 
			OndelUser(); 
		if(strcmp(strMess,"张希波")==0||strcmp(strMess,"周凤磊")==0||strcmp(strMess,"郝晓昀")==0||strcmp(strMess,"刘进涛")==0||strcmp(strMess,"杨文燕")==0||strcmp(strMess,"李  丽")==0||strcmp(strMess,"联系我们")==0) 
			ShellExecute(0,"open","kaifazhe.chm",NULL, NULL, SW_SHOWNORMAL); 
		TRACE2( "Item selected: %d, Name: %s.\n", pOBInfo->nIndex, pOBInfo->lpszText); 
		break; 
		} 
	case OBN_XT_FOLDERCHANGE: 
		TRACE2( "Folder selected: %d, Name: %s.\n", pOBInfo->nIndex, pOBInfo->lpszText); 
		break; 
	case OBN_XT_ONLABELENDEDIT: 
		TRACE2( "Item edited: %d, New name: %s.\n", pOBInfo->nIndex, pOBInfo->lpszText); 
		break; 
	case OBN_XT_ONGROUPENDEDIT: 
		TRACE2( "Folder edited: %d, New name: %s.\n", pOBInfo->nIndex, pOBInfo->lpszText); 
		break;	 
	case OBN_XT_DRAGITEM: 
		TRACE3( "Dragging From: %d, To: %d, Name: %s.\n", pOBInfo->nDragFrom, 
		 pOBInfo->nDragTo, pOBInfo->lpszText); 
		break; 
 
	case OBN_XT_ITEMHOVER: 
		TRACE2( "Hovering Item: %d, Name: %s.\n", pOBInfo->nIndex, pOBInfo->lpszText); 
		break; 
	case OBN_XT_DELETEITEM: 
		/*if (!m_bDestroy && AfxMessageBox(_T("Are you sure you want to remove this folder shortcut?"), 
			MB_ICONWARNING|MB_YESNO) == IDNO) 
		{ 
			// The user selected No, return FALSE to abort the action. 
			return FALSE; 
		} 
		TRACE2( "Item deleted: %d, Name: %s.\n", pOBInfo->nIndex, pOBInfo->lpszText);*/ 
		break; 
	case OBN_XT_DELETEFOLDER: 
		/*if (!m_bDestroy && AfxMessageBox(_T("Are you sure you want to remove the specified folder?"), 
			MB_ICONWARNING|MB_YESNO) == IDNO) 
		{ 
			// The user selected No, return FALSE to abort the action. 
			return FALSE; 
		} 
		TRACE2( "Folder deleted: %d, Name: %s.\n", pOBInfo->nIndex, pOBInfo->lpszText);*/ 
		break; 
	} 
 
	return TRUE; 
 
} 
void CMainFrame::OnDestroy() 
{ 
	CFrameWnd::OnDestroy(); 
	delete m_pMainQre; //销毁查询窗口对象指针 
	// TODO: 在此处添加消息处理程序代码 
} 
void CMainFrame::OndelUser() 
{ 
	if(theApp.m_quanxian=="0") 
	{ 
		MessageBox("您无此权限!"); 
		return; 
	} 
	CDelAdmin cs; 
	cs.DoModal(); 
} 
 
 
 
BOOL CMainFrame::OnQueryOpen() 
{ 
	// TODO: 在此添加消息处理程序代码和/或调用默认值 
	theApp.m_pMainWnd->ShowWindow(false); 
 
	return CFrameWnd::OnQueryOpen(); 
} 
 
BOOL CMainFrame::OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult) 
{ 
	// TODO: 在此添加专用代码和/或调用基类 
 
	return CFrameWnd::OnWndMsg(message, wParam, lParam, pResult); 
} 
 
 
 
void CMainFrame::OnMenupass() 
{ 
	// TODO: 在此添加命令处理程序代码 
	OnAddUser(); 
 
} 
 
void CMainFrame::OnMenuModifyPassword() 
{ 
	// TODO: 在此添加命令处理程序代码 
	OnModifyPassword(); 
} 
 
void CMainFrame::OnMenuDeleteuser() 
{ 
	// TODO: 在此添加命令处理程序代码 
	OndelUser(); 
} 
 
void CMainFrame::OnMenuprintfile() 
{ 
	// TODO: 在此添加命令处理程序代码 
	OnPrintFile(); 
} 
 
void CMainFrame::OnMenurstx() 
{ 
	// TODO: 在此添加命令处理程序代码 
	OnRSTX(); 
} 
 
void CMainFrame::OnMenucktx() 
{ 
	// TODO: 在此添加命令处理程序代码 
	OnCKTX(); 
} 
 
void CMainFrame::OnMENUtjxx() 
{ 
	// TODO: 在此添加命令处理程序代码 
	OnAddDate(); 
} 
 
void CMainFrame::OnMenuxxll() 
{ 
	// TODO: 在此添加命令处理程序代码 
	OnMainQuery(); 
} 
 
void CMainFrame::OnMenuxxcx() 
{ 
	// TODO: 在此添加命令处理程序代码 
	OnID4(); 
} 
 
void CMainFrame::OnMenuhelp() 
{ 
	// TODO: 在此添加命令处理程序代码 
	OnIDHELP(); 
} 
 
void CMainFrame::OnMenuxgxx() 
{ 
	// TODO: 在此添加命令处理程序代码 
	OnMainQuery(); 
} 
 
void CMainFrame::OnMenuscxx() 
{ 
	// TODO: 在此添加命令处理程序代码 
	OnMainQuery(); 
}