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

📄 smsdlg.cpp

📁 这是一个学生信息管理系统
💻 CPP
📖 第 1 页 / 共 3 页
字号:
		{
		case 0://无,则跳出
			break;
		case 1://自定义的
			PlaySound(LoginDlg.m_sRunBell, NULL,SND_ASYNC); 
			break;
		case 2://系统带的
			lpszFile+=L"Bell_1.wav";
			PlaySound(lpszFile, NULL, SND_ASYNC);
			break;
		case 3://系统带的
			lpszFile+=L"Bell_2.wav";
			PlaySound(lpszFile, NULL, SND_ASYNC); 
			break;
		case 4://系统带的
			lpszFile+=L"Bell_3.wav";
			PlaySound(lpszFile, NULL, SND_ASYNC); 
			break;
		case 5://系统带的
			lpszFile+=L"Bell_4.wav";
			PlaySound(lpszFile, NULL, SND_ASYNC); 
			break;
		case 6://系统带的
			lpszFile+=L"Bell_5.wav";
			PlaySound(lpszFile, NULL, SND_ASYNC); 
			break;
		case 7://系统带的
			lpszFile+=L"Bell_6.wav";
			PlaySound(lpszFile, NULL, SND_ASYNC); 
			break;
		case 8://系统带的
			lpszFile+=L"Bell_7.wav";
			PlaySound(lpszFile, NULL, SND_ASYNC); 
			break;
		case 9://系统带的
			lpszFile+=L"Bell_8.wav";
			PlaySound(lpszFile, NULL, SND_ASYNC); 
			break;
		case 10://系统带的
			lpszFile+=L"Bell_9.wav";
			PlaySound(lpszFile, NULL, SND_ASYNC); 
			break;
		}
	}
	CDialog::OnClose();
}
//关闭非模式对话框的消息处理函数

LRESULT CSMSDlg::OnStudyDlgDestroyed (WPARAM wParam, LPARAM lParam)
{
	m_pStudyDlg = NULL;
	return 0;
}
LRESULT CSMSDlg::OnWorkDlgDestroyed (WPARAM wParam, LPARAM lParam)
{
	m_pWorkDlg = NULL;
	return 0;
}
LRESULT CSMSDlg::OnSocialiseDlgDestroyed (WPARAM wParam, LPARAM lParam)
{
	m_pSocialiseDlg = NULL;
	return 0;
}
LRESULT CSMSDlg::OnSetRemindDlgDestroyed (WPARAM wParam, LPARAM lParam)
{
	m_pSetRemindDlg = NULL;
	return 0;
}
LRESULT CSMSDlg::OnFinanceMainDlgDestroyed (WPARAM wParam, LPARAM lParam)
{
	m_pFinanceMainDlg = NULL;
	return 0;
}
LRESULT CSMSDlg::OnExit (WPARAM wParam,LPARAM lParam)
{
	m_bReboot=true;
    PostMessage(WM_CLOSE);
	return 0;
}

void CSMSDlg::OnPopStudy()
{
	// TODO: 在此添加命令处理程序代码
	BeginWaitCursor();
	if(m_pStudyDlg!=NULL)
		m_pStudyDlg->SetFocus ();
	else
	{
		m_pStudyDlg=new CStudyDlg;
		m_pStudyDlg->Create (IDD_STUDY_DLG);
		m_pStudyDlg->ShowWindow (SW_SHOW);
	}
	EndWaitCursor();
}

void CSMSDlg::OnPopWork()
{
	// TODO: 在此添加命令处理程序代码
	BeginWaitCursor();
	if(m_pWorkDlg!=NULL)
		m_pWorkDlg->SetFocus ();
	else
	{
		m_pWorkDlg=new CWorkDlg;
		m_pWorkDlg->Create (IDD_WORK_DLG);
		m_pWorkDlg->ShowWindow (SW_SHOW);
	}
	EndWaitCursor();
}

void CSMSDlg::OnPopSocialise()
{
	// TODO: 在此添加命令处理程序代码
	BeginWaitCursor();
	if(m_pSocialiseDlg!=NULL)
		m_pSocialiseDlg->SetFocus ();
	else
	{
		m_pSocialiseDlg=new CSocialiseDlg;
		m_pSocialiseDlg->Create (IDD_SOCIALISE_DLG);
		m_pSocialiseDlg->ShowWindow (SW_SHOW);
	}
	EndWaitCursor();
}

void CSMSDlg::OnPopFinance()
{
	// TODO: 在此添加命令处理程序代码
	BeginWaitCursor();
	if(m_pFinanceMainDlg!=NULL)
		m_pFinanceMainDlg->SetFocus ();
	else
	{
		m_pFinanceMainDlg=new CFinanceMainDlg;
		m_pFinanceMainDlg->Create (IDD_FINANCE_MAIN_DLG);
		m_pFinanceMainDlg->ShowWindow (SW_SHOW);
	}
	EndWaitCursor();
}

void CSMSDlg::OnPopEntertain()
{
	// TODO: 在此添加命令处理程序代码
//削去了娱乐版了,这个地方放帮助文档
	BeginWaitCursor();
	HWND handle=0;
	ShellExecuteW(handle, _T("open"), _T("SMS.chm"), NULL, NULL, SW_SHOWNORMAL);
	EndWaitCursor();
}

void CSMSDlg::OnPopRemind ()
{
	BeginWaitCursor();
	if(m_pSetRemindDlg!=NULL)
		m_pSetRemindDlg->SetFocus ();
	else
	{
		m_pSetRemindDlg=new CSetRemindDlg2;
		m_pSetRemindDlg->Create (IDD_SETREMIND_DLG);
		m_pSetRemindDlg->ShowWindow (SW_SHOW);
	}
	EndWaitCursor();
}
void CSMSDlg::OnPopSet()
{
	// TODO: 在此添加命令处理程序代码
	BeginWaitCursor();
	CString OldPw;
	int     OldTerm;
	SETALL  all;
	CString StrExitBell;
	CString StrRunBell;
    if(m_pUserSet.IsOpen ())
		m_pUserSet.Close ();
	m_pUserSet.Open ();
	m_pUserSet.MoveFirst ();
	OldPw=m_pUserSet.m_uPassword ;
	OldTerm=m_pUserSet.m_uTerm ;
	StrExitBell=m_pUserSet.m_uExitBell ;
	StrRunBell=m_pUserSet.m_uRunBell ;
	m_pUserSet.Close ();//最好现在关闭,待会成功了在连接
	CSetSheet ps(L"设置");
	//初始化属性页的数据
	ps.m_pSystemSetPage .m_iTerm =OldTerm;//控件上从零开始,故减去一
	ps.m_pSystemSetPage.m_bAutoRun =m_bAutoRun;//是否自动运行的初始化
	ps.m_pSystemSetPage .m_iRunBell =m_iRunBell;//启动铃声的初始化
	ps.m_pSystemSetPage .m_iExitBell =m_iExitBell;//退出铃声的初始化
	ps.m_pSystemSetPage .m_sRunbellUserMode =StrRunBell;
	ps.m_pSystemSetPage .m_sExitbellUserMode =StrExitBell;
	ps.m_pSystemSetPage .m_iSystemStyle =m_iSystemStyle;//系统主题的初始化
	ps.m_pSystemSetPage .m_iTipTime =(m_iTipTime-5)/5;
	if(ps.DoModal ()==IDOK)
	{
		//首先传送所有数据,不论修改与否
		all.m_bAutoRun =ps.m_pSystemSetPage .m_bAutoRun ;
		all.m_iRunBell =ps.m_pSystemSetPage .m_iRunBell ;
		all.m_sRunbellUserMode =ps.m_pSystemSetPage .m_sRunbellUserMode ;
		all.m_iExitBell =ps.m_pSystemSetPage .m_iExitBell ;
		all.m_sExitbellUserMode =ps.m_pSystemSetPage .m_sExitbellUserMode ;
		all.m_iTerm =ps.m_pSystemSetPage .m_iTerm ;
		all.m_iSystemStyle =ps.m_pSystemSetPage .m_iSystemStyle ;
		all.m_iTipTime =ps.m_pSystemSetPage .m_iTipTime ;
		all.m_sNewId =ps.m_pUserSetPage .m_sNewId ;
		all.m_sNewName =ps.m_pUserSetPage .m_sNewName ;
		all.m_sNewPw1 =ps.m_pUserSetPage .m_sNewPw1 ;
		all.m_sNewPw2 =ps.m_pUserSetPage .m_sNewPw2 ;
		all.m_sOldPw =ps.m_pUserSetPage .m_sOldPw ;
		//先登记系统设置的,先保存学期信息及相应的铃声
        if(m_pUserSet.IsOpen ())
			m_pUserSet.Close ();
		m_pUserSet.Open ();
		m_pUserSet.MoveFirst ();
		m_pUserSet.Edit ();
		m_pUserSet.m_uTerm =all.m_iTerm ;
		m_pUserSet.m_uExitBell =all.m_sExitbellUserMode ;
		m_pUserSet.m_uRunBell =all.m_sRunbellUserMode ;
		m_pUserSet.Update ();
		m_pUserSet.MoveLast ();
		m_pUserSet.Close ();
		//再通过全局变量保存其他信息
		m_iSystemStyle=all.m_iSystemStyle ;
		m_bAutoRun=all.m_bAutoRun ;
		m_iRunBell=all.m_iRunBell ;
		m_iExitBell=all.m_iExitBell ;
		m_iTerm=all.m_iTerm ;
		m_iTipTime=all.m_iTipTime *5+5;
		//上面这些信息保存都是不需要密码的
		//下面保存用户帐户信息,关系到保密性,故必须是用户自身才有权利修改
	    if(all.m_sOldPw !=OldPw)//旧密码不正确,不可以修改!
		{
			MessageBox(L"旧密码输入不正确,帐户设置失败!",L"错误",MB_ICONSTOP);
			return ;
		}
		//再次要确认两次的新密码是否相同
		if(all.m_sNewPw1 !=all.m_sNewPw2 )
		{
			MessageBox(L"两次密码不相符,帐户设置失败!",L"错误",MB_ICONSTOP);
			return ;
		}
		if(m_pUserSet.IsOpen ())
			m_pUserSet.Close ();
		m_pUserSet.Open ();
		m_pUserSet.MoveFirst ();
		m_pUserSet.Edit ();
		m_pUserSet.m_uId =all.m_sNewId ;
		m_pUserSet.m_uName =all.m_sNewName ;
		m_pUserSet.m_uPassword =all.m_sNewPw1 ;
        m_pUserSet.Update ();
		m_pUserSet.MoveLast ();
		m_pUserSet.Close ();//
		//最后,为了保证主题能够马上应用,必须重起
		//下面这一招用的很棒!!!巧妙地实现了重起!!!
		//并且还可以逃过登录对话框!Power的独创!
		//现在就来设置是否开机自动运行了
		if(m_bAutoRun)//通过注册表开机自动运行
		{
			CString sPath;
			GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
			sPath.ReleaseBuffer ();
			SetAutoRun(sPath);
		}
		else//否则删除注册表
		{
			CString sPath;
			GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
			sPath.ReleaseBuffer ();
			DeleteAutoRun(sPath);
		}
		WinExec(LPCSTR("SMS.exe"),NULL);//启动另一个程序
		//发消息告诉主窗口,要“重起”了,其实只是把它巧妙的关闭
		m_bReboot=true;
		PostMessage(WM_CLOSE);//设置对话框自己再关闭
		return ;

	}
	EndWaitCursor();
}

void CSMSDlg::OnPopExit()
{
	SaveWindowState(false);
    KillTimer(SMS_TIME_TIMER);
	KillTimer(SMS_LOGION_TIMER);
	if(m_iTipTime>=10)
	    KillTimer(SMS_TIP_TIMER);
	//先处理好退出声音
	switch(m_iExitBell)
	{
	case 0://无,则跳出
		break;
	case 1://自定义的
		PlaySound(L"SystemHand", NULL, SND_ASYNC|SND_FILENAME); 
		break;
	case 2://系统带的
		PlaySound(L"SystemHand", NULL, SND_ASYNC|SND_FILENAME);
		break;
	case 3://系统带的
		PlaySound(L"SystemAsterisk", NULL, SND_ASYNC|SND_FILENAME); 
		break;
	case 4://系统带的
		PlaySound(L"SystemExclamation", NULL, SND_ASYNC|SND_FILENAME); 
		break;
	case 5://系统带的
		PlaySound(L"SystemExclamation", NULL, SND_ASYNC|SND_FILENAME); 
		break;
	case 6://系统带的
		PlaySound(L"SystemExclamation", NULL, SND_ASYNC|SND_FILENAME); 
		break;
	case 7://系统带的
		PlaySound(L"SystemExclamation", NULL, SND_ASYNC|SND_FILENAME); 
		break;
	case 8://系统带的
		PlaySound(L"SystemExclamation", NULL, SND_ASYNC|SND_FILENAME); 
		break;
	case 9://系统带的
		PlaySound(L"ShutDown", NULL, SND_ASYNC|SND_FILENAME); 
		break;
	case 10://系统带的
		PlaySound(L"SystemExclamation", NULL, SND_ASYNC|SND_FILENAME); 
		break;
	}
	this->DestroyWindow();
}
void CSMSDlg::OnMainAbout ()
{
	BeginWaitCursor();
	CAboutDlg dlg;
	dlg.DoModal ();
	EndWaitCursor();
}
void CSMSDlg::OnHdnItemclickSocialisePersonList(NMHDR *pNMHDR, LRESULT *pResult)
{
	LPNMHEADER phdr = reinterpret_cast<LPNMHEADER>(pNMHDR);
	// TODO: 在此添加控件通知处理程序代码
	CDataClass DataClass;
    int nCount=m_cInfoListCtrl.GetItemCount ();//列表中的个数
	if(nCount==0)
		return ;
	DataClass.Init (nCount);//初始化类对象
	for(int i=0; i<nCount; i++)
	{
		DataClass.m_Data [i].m_sCol_1 =m_cInfoListCtrl.GetItemText (i,0);
		DataClass.m_Data [i].m_sCol_2 =m_cInfoListCtrl.GetItemText (i,1);
		DataClass.m_Data [i].m_sId    =m_cInfoListCtrl.GetItemText (i,2);
	}//初始化完毕
	//现在排序
	int nSelectCol=phdr->iItem ;
	switch(nSelectCol)
	{
	case 0:
		DataClass.SortDataByCol_1 (m_bSortUp,0);
		break;
	case 1:
		DataClass.SortDataByCol_2 (m_bSortUp,1);
		break;
	default:break;
	}
	//现在把排好序的放回列表
	//先删除
	m_cInfoListCtrl.DeleteAllItems ();
	for(int j=0; j<nCount; j++)
	{
		m_cInfoListCtrl.InsertItem(j,DataClass.m_Data [j].m_sCol_1  ,0);
		m_cInfoListCtrl.SetItemText (j,1,DataClass.m_Data [j].m_sCol_2 );
		m_cInfoListCtrl.SetItemText (j,2,DataClass.m_Data [j].m_sId );
	}
	*pResult = 0;
	if(m_bSortUp)
		m_bSortUp=false;
	else
		m_bSortUp=true;
}
void CSMSDlg::OnContextMenu(CWnd* pWnd, CPoint point)
{
	// TODO: 在此处添加消息处理程序代码
	CMenu menu;
    CPoint pos=point;
	ScreenToClient(&pos);
	CRect rect;
	GetClientRect(&rect);
	if(rect.PtInRect (pos))
	{
	menu.LoadMenu(IDR_POPMAIN_MENU);
	menu.GetSubMenu (0)->TrackPopupMenu (TPM_LEFTALIGN|TPM_RIGHTBUTTON, point.x, point.y, this);
	return ;
	}
	CWnd::OnContextMenu (pWnd,point);
}


BOOL CAboutDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// TODO:  在此添加额外的初始化
    m_pConnextMe.m_link =_T("mailto:PrinciplePan@163.com");
	m_pConnextMe.SubclassDlgItem(IDC_CONNEXTME_STATIC,this);
	return TRUE;  // return TRUE unless you set the focus to a control
	// 异常: OCX 属性页应返回 FALSE
}

void CSMSDlg::OnWindowsCal()
{
	// TODO: 在此添加命令处理程序代码
	BeginWaitCursor();
	WinExec(LPCSTR("calc.exe"),NULL);
	EndWaitCursor();
}

⌨️ 快捷键说明

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