📄 smsdlg.cpp
字号:
{
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 + -