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

📄 teacherinfodlg.cpp

📁 为学校教导用的排课系统。
💻 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 + -