www.gusucode.com > VC++毕业设计_高校宿舍管理系统附论文源码程序 > VC++毕业设计_高校宿舍管理系统附论文源码程序/code/源代码/MainFrm.cpp
//Download by http://www.NewXing.com // MainFrm.cpp : implementation of the CMainFrame class // #include "stdafx.h" #include "Inhabitants.h" #include "MainFrm.h" #include "LeftTreeView.h" #include "UsersListView.h" #include "UserinfoView.h" #include "AddUserDlg.h" #include "QueryDlg.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_OPERATE_ADDUSER, OnOperateAdduser) ON_COMMAND(ID_OPERATE_QUERY, OnOperateQuery) //}}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 } 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("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 BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) { // return CFrameWnd::OnCreateClient(lpcs, pContext); if(!m_wndSplitter.CreateStatic(this,1,2)) return FALSE; if(!m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CLeftTreeView),CSize(100,100),pContext)) return FALSE; if(!m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CUsersListView),CSize(100,100),pContext)) return FALSE; m_pLeftView = (CLeftTreeView*)m_wndSplitter.GetPane(0,0); m_pUsersView = (CUsersListView*)m_wndSplitter.GetPane(0,1); return TRUE; } /*************************************** 功能:切换右边的视 参数:nViewType = 0 CUsersListView 1 CUserinfoView */ void CMainFrame::SwitchToView(int nViewType) { CView* pView = (CView*)m_wndSplitter.GetPane(0,1); CRect rcRight,rcFrame; pView->GetClientRect(&rcRight); GetClientRect(&rcFrame); switch(nViewType) { case USERSVIEW: //CUsersListView { if(!pView->IsKindOf(RUNTIME_CLASS(CUsersListView))) { m_wndSplitter.DeleteView(0,1); m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CUsersListView), CSize(rcRight.Width(),rcRight.Height()),NULL); m_wndSplitter.RecalcLayout(); m_pUsersView= (CUsersListView*)m_wndSplitter.GetPane(0,1); } break; } case USERINFOVIEW: //CUserinfoView { if(!pView->IsKindOf(RUNTIME_CLASS(CUserinfoView))) { m_wndSplitter.DeleteView(0,1); m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CUserinfoView), CSize(rcRight.Width(),rcRight.Height()),NULL); m_wndSplitter.RecalcLayout(); m_pUserinfoView= (CUserinfoView*)m_wndSplitter.GetPane(0,1); } break; } default: break; } } //增加学生 void CMainFrame::OnOperateAdduser() { CAddUserDlg dlg; dlg.DoModal(); } //查询学生 void CMainFrame::OnOperateQuery() { CQueryDlg dlg; if( dlg.DoModal() == IDOK ) { BOOL bIsFirst = TRUE; CString strSql,strRoomtype,strBuildingnum,strRoomnum,strBednum,strStudentname, strHomeTel,strSex,strNationNal,strMajor,strId,strRemarks; //判断宿舍类型是否输入了条件 if( dlg.m_strStudentName != "" ) { strRoomtype = " roomtype = '" + dlg.m_strStudentName + "'"; bIsFirst = FALSE; } else strRoomtype = ""; //判断楼号是否输入了条件 if( dlg.m_nBuildingNum != 0 ) { if( bIsFirst == TRUE ) strBuildingnum.Format(" buildingnum = %d",dlg.m_nBuildingNum); else strBuildingnum.Format(" and buildingnum = %d",dlg.m_nBuildingNum); bIsFirst = FALSE; } else strBuildingnum = ""; //判断房间号是否输入了条件 if( dlg.m_nRoomNum != 0 ) { if( bIsFirst == TRUE ) strRoomnum.Format(" roomnum = %d",dlg.m_nRoomNum); else strRoomnum.Format(" and roomnum = %d",dlg.m_nRoomNum); bIsFirst = FALSE; } //判断床铺号是否输入了条件 if( dlg.m_nBedNum != 0 ) { if( bIsFirst == TRUE ) strBednum.Format(" bednum = %d",dlg.m_nBedNum); else strBednum.Format(" and bednum = %d",dlg.m_nBedNum); bIsFirst = FALSE; } //判断房主是否输入了条件 if( dlg.m_strStudentname != "" ) { if( bIsFirst == TRUE ) strStudentname = " studentname = '" + dlg.m_strStudentname + "'"; else strStudentname = " and studentname = '" + dlg.m_strStudentname + "'"; bIsFirst = FALSE; } //判断宿舍电话是否输入了条件 if(dlg.m_strHomeTel != "") { if( bIsFirst == TRUE ) strHomeTel = " housetel = '" + dlg.m_strHomeTel + "'"; else strHomeTel = " and housetel = '" + dlg.m_strHomeTel + "'"; bIsFirst = FALSE; } //判断性别是否输入了条件 if(dlg.m_strSex != "") { if( bIsFirst == TRUE ) strSex = " sex = '" + dlg.m_strSex + "'"; else strSex = " and sex = '" + dlg.m_strSex + "'"; bIsFirst = FALSE; } //判断入学年份是否输入了条件 if(dlg.m_strNationNal != "") { if( bIsFirst == TRUE ) strNationNal = " national = '" + dlg.m_strNationNal + "'"; else strNationNal = " and national = '" + dlg.m_strNationNal + "'"; bIsFirst = FALSE; } //判断专业是否输入了条件 if(dlg.m_strMajor != "") { if( bIsFirst == TRUE ) strMajor = " major = '" + dlg.m_strMajor + "'"; else strMajor = " and major = '" + dlg.m_strMajor + "'"; bIsFirst = FALSE; } //判断学号是否输入了条件 if(dlg.m_strId != "") { if( bIsFirst == TRUE ) strId = " id = '" + dlg.m_strId + "'"; else strId = " and id = '" + dlg.m_strId + "'"; bIsFirst = FALSE; } //判断remarks是否输入了条件 if(dlg.m_strRemarks != "") { if( bIsFirst == TRUE ) strRemarks = " remarks = '" + dlg.m_strRemarks + "'"; else strRemarks = " and remarks = '" + dlg.m_strRemarks + "'"; bIsFirst = FALSE; } //生成完整的查询条件 if( bIsFirst == TRUE ) //没有输入任何条件 strSql = "select * from house"; else strSql = "select * from house where" + strRoomtype + strBuildingnum + strRoomnum + strBednum + strStudentname + strHomeTel + strSex + strNationNal + strMajor + strId + strRemarks; //切换到CUsersListView,根据查询条件显示学生 SwitchToView(USERSVIEW); m_pUsersView->ShowUsers(strSql); } }