📄 teacherinfodlg.cpp
字号:
// TeacherInfoDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Lesson.h"
#include "TeacherInfoDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#include "LessonDoc.h"
#include "MainFrm.h"
/////////////////////////////////////////////////////////////////////////////
// CTeacherInfoDlg dialog
CTeacherInfoDlg::CTeacherInfoDlg(CWnd* pParent /*=NULL*/)
: CDialog(CTeacherInfoDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CTeacherInfoDlg)
m_Lim_Num = _T("");
m_Ad_Num = _T("");
m_Teacherinfo = _T("");
//}}AFX_DATA_INIT
}
void CTeacherInfoDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTeacherInfoDlg)
DDX_Control(pDX, IDC_COMBO_AD_STANZA, m_Combo_Ad_Stanza);
DDX_Control(pDX, IDC_COMBO_LIM_WEEK, m_Combo_Lim_Week);
DDX_Control(pDX, IDC_LIST, m_List);
DDX_Text(pDX, IDC_EDIT_LIM_NUM, m_Lim_Num);
DDX_Text(pDX, IDC_EDIT_AD_NUM, m_Ad_Num);
DDX_Text(pDX, IDC_TEACHERINFO, m_Teacherinfo);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CTeacherInfoDlg, CDialog)
//{{AFX_MSG_MAP(CTeacherInfoDlg)
ON_CBN_EDITCHANGE(IDC_COMBO_AD_STANZA, OnEditchangeComboAdStanza)
ON_CBN_SELENDOK(IDC_COMBO_AD_STANZA, OnSelendokComboAdStanza)
ON_CBN_EDITCHANGE(IDC_COMBO_LIM_WEEK, OnEditchangeComboLimWeek)
ON_CBN_SELENDOK(IDC_COMBO_LIM_WEEK, OnSelendokComboLimWeek)
ON_EN_CHANGE(IDC_EDIT_AD_NUM, OnChangeEditAdNum)
ON_EN_CHANGE(IDC_EDIT_LIM_NUM, OnChangeEditLimNum)
ON_LBN_SELCHANGE(IDC_LIST, OnSelchangeList)
ON_BN_CLICKED(IDC_BUTTON_ADD1, OnButtonAdd1)
ON_BN_CLICKED(IDC_BUTTON_ADD2, OnButtonAdd2)
ON_BN_CLICKED(IDC_BUTTON_COPY, OnButtonCopy)
ON_BN_CLICKED(IDC_BUTTON_DEL, OnButtonDel)
ON_BN_CLICKED(IDC_BUTTON_PASTE, OnButtonPaste)
ON_BN_CLICKED(IDC_BUTTON_SORT, OnButtonSort)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTeacherInfoDlg message handlers
void CTeacherInfoDlg::OnEditchangeComboAdStanza()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
}
void CTeacherInfoDlg::OnSelendokComboAdStanza()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
}
void CTeacherInfoDlg::OnEditchangeComboLimWeek()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
}
void CTeacherInfoDlg::OnSelendokComboLimWeek()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
}
void CTeacherInfoDlg::OnChangeEditAdNum()
{
UpdateData(TRUE);
}
void CTeacherInfoDlg::OnChangeEditLimNum()
{
UpdateData(TRUE);
}
void CTeacherInfoDlg::OnSelchangeList()
{
// TODO: Add your control notification handler code here
int nMaxItems=m_List.GetSelCount();
if(nMaxItems>0)
{
GetDlgItem(IDC_BUTTON_COPY)->EnableWindow(1);
GetDlgItem(IDC_BUTTON_DEL)->EnableWindow(1);
}
else
{
GetDlgItem(IDC_BUTTON_COPY)->EnableWindow(0);
GetDlgItem(IDC_BUTTON_DEL)->EnableWindow(0);
}
}
void CTeacherInfoDlg::OnButtonAdd1()
{
// TODO: Add your control notification handler code here
if(m_Combo_Ad_Stanza.GetCurSel()<0)return;
CString str,comstr;
str.Format("第%d节允许%d节",m_Combo_Ad_Stanza.GetCurSel()+1,atoi(m_Ad_Num));
for(int i=m_List.GetCount()-1;i>=0;i--)
{
m_List.GetText(i,comstr);
if(!str.Left(4).CompareNoCase(comstr.Left(4)))
return;
}
m_List.AddString(str);
GetDlgItem(IDC_BUTTON_SORT)->EnableWindow(TRUE);
}
void CTeacherInfoDlg::OnButtonAdd2()
{
// TODO: Add your control notification handler code here
if(m_Combo_Lim_Week.GetCurSel()<0)return;
CString str,comstr;
str.Format("星期%d允许%d节",m_Combo_Lim_Week.GetCurSel()+1,atoi(m_Lim_Num));
for(int i=m_List.GetCount()-1;i>=0;i--)
{
m_List.GetText(i,comstr);
if(!str.Left(5).CompareNoCase(comstr.Left(5)))
return;
}
m_List.AddString(str);
GetDlgItem(IDC_BUTTON_SORT)->EnableWindow(TRUE);
}
void CTeacherInfoDlg::OnButtonCopy()
{
// TODO: Add your control notification handler code here
int nMaxItems=m_List.GetSelCount();
int rgIndex[63];
for(int x=0;x<63;x++)rgIndex[x]=-1;
m_List.GetSelItems(nMaxItems,rgIndex);
int nIndex;
CLessonApp * pa=(CLessonApp *)AfxGetApp();
CString str;
pa->m_Request.RemoveAll();
for(int i=0;i<m_List.GetSelCount();i++)
{
nIndex=rgIndex[i];
m_List.GetText(nIndex,str);
pa->m_Request.Add(str);
}
GetDlgItem(IDC_BUTTON_PASTE)->EnableWindow(1);
}
void CTeacherInfoDlg::OnButtonDel()
{
// TODO: Add your control notification handler code here
int rgIndex[63];
for(int x=0;x<63;x++)rgIndex[x]=-1;
int nMaxItems=m_List.GetSelCount();
m_List.GetSelItems(nMaxItems,rgIndex);
int i=0;int nIndex;
for(i=m_List.GetSelCount()-1;i>=0;i--)
{
nIndex=rgIndex[i];
m_List.DeleteString(nIndex);
}
GetDlgItem(IDC_BUTTON_COPY)->EnableWindow(0);
GetDlgItem(IDC_BUTTON_DEL)->EnableWindow(0);
}
void CTeacherInfoDlg::OnButtonPaste()
{
// TODO: Add your control notification handler code here
CLessonApp * pa=(CLessonApp *)AfxGetApp();
CString str;BOOL b=1;
for(int i=0;i<pa->m_Request.GetSize();i++)
{
for(int j=0;j<m_List.GetCount();j++)
{
m_List.GetText(j,str);
b=1;
if(!str.Left(2).CompareNoCase("第"))
{
if(!str.Left(3).CompareNoCase(pa->m_Request.GetAt(i).Left(3)))
{
b=0;
break;
}
}
if(!str.Left(2).CompareNoCase("星"))
{
if(!str.Left(5).CompareNoCase(pa->m_Request.GetAt(i).Left(5)))
{
b=0;
break;
}
}
}
if(b)
{
m_List.AddString(pa->m_Request.GetAt(i));
GetDlgItem(IDC_BUTTON_SORT)->EnableWindow(TRUE);
}
}
}
void CTeacherInfoDlg::OnButtonSort()
{
// TODO: Add your control notification handler code here
int Count=m_List.GetCount();CString str1,str2;
for(int nIndex=Count-1;nIndex>=0;nIndex--)
for(int i=nIndex-1;i>=0;i--)
{
m_List.GetText(nIndex,str1);
m_List.GetText(i,str2);
if(str2.CompareNoCase(str1)>0)
{
m_List.DeleteString(nIndex);
m_List.InsertString(nIndex,str2);
m_List.DeleteString(i);
m_List.InsertString(i,str1);
}
}
}
BOOL CTeacherInfoDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
CLessonDoc * pDoc=(CLessonDoc*)pDocument;
//改变标题
CString HeadText;
GetWindowText(HeadText);
HeadText+=" - "+m_TeacherName;
SetWindowText(HeadText);
//填充列表
int i=0;
for(i=m_List.GetCount()-1;i>=0;i--)
m_List.DeleteString(i);
CTeacher * Teacher=pDoc->GetTeacher(m_TeacherName);
for(i=0;i<Teacher->m_Request.GetSize();i++)
m_List.AddString(Teacher->m_Request.GetAt(i));
//使控件可见
if(i>0)
GetDlgItem(IDC_BUTTON_SORT)->EnableWindow(TRUE);
CLessonApp * pa=(CLessonApp *)AfxGetApp();
if(pa->m_Request.GetSize()>0)
GetDlgItem(IDC_BUTTON_PASTE)->EnableWindow(TRUE);
//填充节次组合框
CString str;
for(i=0;i<pDoc->m_Info.m_Stanza;i++)
{
str.Format("第%d节",i+1);
m_Combo_Ad_Stanza.AddString(str);
}
//填充星期组合框
for(i=0;i<pDoc->m_Info.m_Week;i++)
{
str.Format("星期%d",i+1);
m_Combo_Lim_Week.AddString(str);
}
//填写教师信息
int Count=0;
for(i=0;i<Teacher->m_MissionArray.GetSize();i++)
{
Count+=((CMission *)Teacher->m_MissionArray.GetAt(i))->m_Num;
}
m_Teacherinfo.Format("%s 总课时:%d节",m_TeacherName,Count);
UpdateData(0);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CTeacherInfoDlg::OnOK()
{
// TODO: Add extra validation here
m_Request.RemoveAll();
CString str;
for(int i=0;i<m_List.GetCount();i++)
{
m_List.GetText(i,str);
m_Request.Add(str);
}
CDialog::OnOK();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -