www.pudn.com > 毕业留念册.rar > MyTeacherPage.cpp


// MyTeacherPage.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "Browse.h" 
#include "MyTeacherPage.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
#define  TEACHER_X   50 
#define  TEACHER_Y   220 
#define  TEXTP_X   254 
#define  TEXTP_Y  230 
///////////////////////////////////////////////////////////////////////////// 
// CMyTeacherPage property page 
 
IMPLEMENT_DYNCREATE(CMyTeacherPage, CPropertyPage) 
 
CMyTeacherPage::CMyTeacherPage() : CPropertyPage(CMyTeacherPage::IDD) 
{ 
	//{{AFX_DATA_INIT(CMyTeacherPage) 
	m_strIntro = _T(""); 
	m_TeacherIsEmpt=TRUE; 
	//}}AFX_DATA_INIT 
} 
 
CMyTeacherPage::~CMyTeacherPage() 
{ 
} 
 
void CMyTeacherPage::DoDataExchange(CDataExchange* pDX) 
{ 
	CPropertyPage::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CMyTeacherPage) 
	DDX_Text(pDX, IDC_INTROEDIT, m_strIntro); 
	//}}AFX_DATA_MAP 
} 
 
 
BEGIN_MESSAGE_MAP(CMyTeacherPage, CPropertyPage) 
	//{{AFX_MSG_MAP(CMyTeacherPage) 
	ON_WM_ERASEBKGND() 
	ON_WM_CTLCOLOR() 
	ON_WM_PAINT() 
	ON_BN_CLICKED(IDC_FORWARD_TPIC, OnForwardTpic) 
	ON_BN_CLICKED(IDC_NEXT_TPIC, OnNextTpic) 
	ON_BN_CLICKED(IDC_PAGEUP_TEA, OnPageupTea) 
	ON_BN_CLICKED(IDC_PAGEDOWN_TEA, OnPagedownTea) 
	ON_BN_CLICKED(IDC_REC_PLAY, OnRecPlay) 
	ON_BN_CLICKED(IDC_REC_STOP, OnRecStop) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CMyTeacherPage message handlers 
 
BOOL CMyTeacherPage::OnInitDialog()  
{ 
	CPropertyPage::OnInitDialog(); 
 
	m_Nextbnt.SubclassDlgItem(IDC_PAGEDOWN_TEA,this); 
	m_Nextbnt.DrawTransparent(TRUE); 
	m_Fronbnt.SubclassDlgItem(IDC_PAGEUP_TEA,this); 
	m_Fronbnt.DrawTransparent(TRUE); 
	m_NextPicbnt.SubclassDlgItem(IDC_NEXT_TPIC,this); 
	m_NextPicbnt.DrawTransparent(TRUE); 
	m_FronPicbnt.SubclassDlgItem(IDC_FORWARD_TPIC,this); 
	m_FronPicbnt.DrawTransparent(TRUE); 
	m_PlayRecbnt.SubclassDlgItem(IDC_REC_PLAY,this); 
	m_PlayRecbnt.DrawTransparent(TRUE); 
	m_StopRecbnt.SubclassDlgItem(IDC_REC_STOP,this); 
	m_StopRecbnt.DrawTransparent(TRUE); 
	 
	//CString str=m_Classe->m_ClassIfo; 
	 
	//pDC->TextOut(40,70,str); 
	if(m_Picture.m_Picture.GetSize()!=0) 
	{ 
		m_Picture.m_Picture.RemoveAll(); 
	} 
	for(int i=0;im_SchoolPhoto.GetSize();i++) 
	{ 
		 
		m_Picture.m_Picture.Add(m_Classe->m_SchoolPhoto[i]); 
	} 
	Show(); 
//	SetTimer(1,3000,NULL); 
	// TODO: Add extra initialization here 
	 
	return TRUE;  // return TRUE unless you set the focus to a control 
	              // EXCEPTION: OCX Property Pages should return FALSE 
} 
void CMyTeacherPage::Show(CDC* pDC,CTeacher *te) 
{ 
	CBrush brush(RGB(255,255,255)); 
	CBrush* oldBrush=pDC->SelectObject(&brush); 
	CPen pen(PS_SOLID,1,RGB(251,211,24)); 
	CPen* oldPen=pDC->SelectObject(&pen); 
	pDC->SetBkColor(RGB(255,255,255)); 
	pDC->SetTextColor(RGB(163,83,160)); 
	pDC->Rectangle(TEXTP_X,TEXTP_Y,TEXTP_X+299,TEXTP_Y+140); 
	pDC->TextOut(TEXTP_X+11,TEXTP_Y+1,"姓名:  "); 
	pDC->TextOut(TEXTP_X+61,TEXTP_Y+1,te->m_Name); 
	pDC->TextOut(TEXTP_X+11,TEXTP_Y+20,"生日:  "); 
	pDC->TextOut(TEXTP_X+61,TEXTP_Y+20,te->m_Birthday); 
	pDC->TextOut(TEXTP_X+11,TEXTP_Y+40,"职务:  "); 
	pDC->TextOut(TEXTP_X+61,TEXTP_Y+40,te->m_Position); 
	pDC->TextOut(TEXTP_X+11,TEXTP_Y+60,"所授课程:  "); 
	pDC->TextOut(TEXTP_X+91,TEXTP_Y+60,te->m_Subject); 
	pDC->TextOut(TEXTP_X+11,TEXTP_Y+80,"固定电话:  "); 
	pDC->TextOut(TEXTP_X+91,TEXTP_Y+80,te->m_Tel); 
	pDC->TextOut(TEXTP_X+11,TEXTP_Y+100,"移动电话:  "); 
	pDC->TextOut(TEXTP_X+91,TEXTP_Y+100,te->m_MoveTel); 
	pDC->TextOut(TEXTP_X+11,TEXTP_Y+120,"电子邮箱:  "); 
	pDC->TextOut(TEXTP_X+91,TEXTP_Y+120,te->m_Email); 
	pDC->TextOut(TEXTP_X+91,TEXTP_Y+150,"相片介绍:"); 
//	pDC->TextOut(200,200,"留言:  "); 
//	pDC->TextOut(200,220,te->m_Liuyan); 
	GetPicture(); 
} 
void CMyTeacherPage::GetPicture() 
{ 
    if(m_Picture.m_Picture.GetSize()!=0) 
	{ 
        m_Picture.GetPicture(); 
		int flag=m_Picture.m_Picture[m_Picture.m_Index].mark; 
		m_strIntro=m_Picture.m_Picture[m_Picture.m_Index].introduction; 
		int styFrame=m_Picture.m_Picture[m_Picture.m_Index].sFrame; 
		CDC *pDC=this->GetDC(); 
		CRect m_Rect; 
		GetDlgItem(IDC_TEACHERPIC)->GetWindowRect(m_Rect); 
		CPoint p1(TEACHER_X,TEACHER_Y); 
		CPoint p2(TEACHER_X+m_Rect.Width(),TEACHER_Y+m_Rect.Height()); 
		m_Rect.SetRect(p1,p2); 
		m_Picture.Show(pDC,m_Rect,flag); 
		m_Picture.ShowFrame(pDC,p1.x,p1.y,m_Rect,styFrame); 
        UpdateData(FALSE); 
	} 
} 
void CMyTeacherPage::Show() 
{ 
	/*CBrush* oldBrush=pDC->SelectObject(&brush); 
	CPen pen(PS_SOLID,1,RGB(0,0,255)); 
	CPen* oldPen=pDC->SelectObject(&pen); 
	pDC->SetBkColor(RGB(200,223,246)); 
	pDC->SetTextColor(RGB(69,12,140)); 
	pDC->Rectangle(199,99,470,320); 
	pDC->TextOut(200,100,m_Classe->m_ClassIfo); 
	GetPicture();*/ 
	 
} 
 
HBRUSH CMyTeacherPage::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)  
{ 
	HBRUSH hbr = CPropertyPage::OnCtlColor(pDC, pWnd, nCtlColor); 
	 
	// TODO: Change any attributes of the DC here 
	if(nCtlColor==CTLCOLOR_DLG) 
	{ 
		pDC->SetTextColor(RGB(0,0,255)); 
		pDC->SetBkColor(RGB(0,192,0)); 
		HBRUSH b=CreateSolidBrush(RGB(0,192,0)); 
		return b; 
	} 
	if(nCtlColor==CTLCOLOR_STATIC) 
	{ 
		pDC->SetTextColor(RGB(0,0,255)); 
		pDC->SetBkColor(RGB(0,192,0)); 
		HBRUSH b=CreateSolidBrush(RGB(0,192,0)); 
		return b; 
	} 
	if(nCtlColor==CTLCOLOR_EDIT) 
	{ 
		pDC->SetBkMode(TRANSPARENT); 
		pDC->SetTextColor(RGB(0,0,0)); 
		pDC->SetBkColor(RGB(255,235,255)); 
		HBRUSH b=CreateSolidBrush(RGB(255,235,255)); 
		return b; 
	} 
	 
	// TODO: Return a different brush if the default is not desired 
	return hbr; 
} 
 
void CMyTeacherPage::OnPaint()  
{ 
	CPaintDC dc(this); // device context for painting 
	 
	// TODO: Add your message handler code here 
	CDC *pDC=this->GetDC(); 
	CTeacher *te=new CTeacher(); 
	m_Classe->InItTeachInf(); 
	if(m_Classe->m_Teaches.GetHeadPosition()!=NULL) 
	{ 
		te=(CTeacher*)m_Classe->GetTeacher(); 
		if(m_Picture.m_Picture.GetSize()!=0) 
		{ 
			m_Picture.m_Picture.RemoveAll(); 
		} 
		for(int i=0;im_Picture.GetSize();i++) 
		{ 
			 
			m_Picture.m_Picture.Add(te->m_Picture[i]); 
		} 
		m_TeacherIsEmpt=FALSE; 
		CDC *pDC=this->GetDC(); 
		Show(pDC,te); 
	} 
	// Do not call CPropertyPage::OnPaint() for painting messages 
} 
 
void CMyTeacherPage::OnForwardTpic()  
{ 
	// TODO: Add your control notification handler code here 
	if(m_Picture.m_Picture.GetSize()!=0) 
	{ 
		m_Picture.GetFronPicture(); 
		int flag=m_Picture.m_Picture[m_Picture.m_Index].mark; 
		m_strIntro=m_Picture.m_Picture[m_Picture.m_Index].introduction; 
		int styFrame=m_Picture.m_Picture[m_Picture.m_Index].sFrame; 
		CDC *pDC=this->GetDC(); 
		CRect m_Rect; 
		GetDlgItem(IDC_TEACHERPIC)->GetWindowRect(m_Rect); 
		CPoint p1(TEACHER_X,TEACHER_Y); 
		CPoint p2(TEACHER_X+m_Rect.Width(),TEACHER_Y+m_Rect.Height()); 
		m_Rect.SetRect(p1,p2); 
		m_Picture.Show(pDC,m_Rect,flag); 
		m_Picture.ShowFrame(pDC,p1.x,p1.y,m_Rect,styFrame); 
		UpdateData(FALSE); 
	} 
 
} 
 
void CMyTeacherPage::OnNextTpic()  
{ 
	// TODO: Add your control notification handler code here 
	if(m_Picture.m_Picture.GetSize()!=0) 
	{ 
		m_Picture.GetNextPicture(); 
		int flag=m_Picture.m_Picture[m_Picture.m_Index].mark; 
		m_strIntro=m_Picture.m_Picture[m_Picture.m_Index].introduction; 
		int styFrame=m_Picture.m_Picture[m_Picture.m_Index].sFrame; 
		CDC *pDC=this->GetDC(); 
		CRect m_Rect; 
		GetDlgItem(IDC_TEACHERPIC)->GetWindowRect(m_Rect); 
		CPoint p1(TEACHER_X,TEACHER_Y); 
		CPoint p2(TEACHER_X+m_Rect.Width(),TEACHER_Y+m_Rect.Height()); 
		m_Rect.SetRect(p1,p2); 
		m_Picture.Show(pDC,m_Rect,flag); 
		m_Picture.ShowFrame(pDC,p1.x,p1.y,m_Rect,styFrame); 
		UpdateData(FALSE); 
	} 
} 
 
void CMyTeacherPage::OnPageupTea()  
{ 
	// TODO: Add your control notification handler code here 
	if(!m_TeacherIsEmpt) 
	{ 
		m_Classe->GetFronTeach(m_hWnd); 
		CTeacher * te=new CTeacher(); 
		te=(CTeacher*)m_Classe->GetTeacher(); 
		if(m_Picture.m_Picture.GetSize()!=0) 
		{ 
			m_Picture.m_Picture.RemoveAll(); 
		} 
		for(int i=0;im_Picture.GetSize();i++) 
		{ 
			 
			m_Picture.m_Picture.Add(te->m_Picture[i]); 
		} 
		CDC *pDC=this->GetDC(); 
		Show(pDC,te); 
	} 
} 
 
void CMyTeacherPage::OnPagedownTea()  
{ 
	// TODO: Add your control notification handler code here 
	if(!m_TeacherIsEmpt) 
	{ 
		m_Classe->GetNextTeach(m_hWnd); 
		CTeacher * te=new CTeacher(); 
		te=(CTeacher*)m_Classe->GetTeacher(); 
		if(m_Picture.m_Picture.GetSize()!=0) 
		{ 
			m_Picture.m_Picture.RemoveAll(); 
		} 
		for(int i=0;im_Picture.GetSize();i++) 
		{ 
			 
			m_Picture.m_Picture.Add(te->m_Picture[i]); 
		} 
		CDC *pDC=this->GetDC(); 
		Show(pDC,te); 
	} 
} 
BOOL CMyTeacherPage::OnEraseBkgnd(CDC* pDC) 
{ 
	CDC		memDC; 
	CBitmap MPlayer; 
	if(!MPlayer.LoadBitmap(IDB_BG)) 
		return FALSE; 
	memDC.CreateCompatibleDC(pDC); 
	CBitmap *pOldBmp=memDC.SelectObject(&MPlayer); 
	pDC->BitBlt(0,0,824,563,&memDC,0,0,SRCCOPY); 
	memDC.SelectObject(pOldBmp); 
	return TRUE; 
} 
 
void CMyTeacherPage::OnRecPlay()  
{ 
	if(!m_TeacherIsEmpt) 
	{ 
		CTeacher *te=new CTeacher(); 
		te=(CTeacher*)m_Classe->GetTeacher(); 
		m_WavLiuyan.Load(te->m_WavLiuyan); 
		m_WavLiuyan.Play(); 
	} 
	// TODO: Add your control notification handler code here 
	 
} 
 
void CMyTeacherPage::OnRecStop()  
{ 
	m_WavLiuyan.Stop();	 
}