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();
}