PhonePage.cpp
上传用户:cuijiu615
上传日期:2007-03-28
资源大小:45k
文件大小:7k
- // PhonePage.cpp : implementation file
- //
- #include "stdafx.h"
- #include "phonebook.h"
- #include "PhonePage.h"
- #include "FindDlg.h"
- #include "AboutDlg.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- /////////////////////////////////////////////////////////////////////////////
- // PhonePage property page
- IMPLEMENT_DYNCREATE(PhonePage, CPropertyPage)
- PhonePage::PhonePage() : CPropertyPage(PhonePage::IDD)
- {
- //{{AFX_DATA_INIT(PhonePage)
- //}}AFX_DATA_INIT
- nCurrentPage=1;
- AddClicked=FALSE;
- EditClicked=FALSE;
- }
- PhonePage::~PhonePage()
- {
- }
- void PhonePage::DoDataExchange(CDataExchange* pDX)
- {
- CPropertyPage::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(PhonePage)
- DDX_Control(pDX, IDC_BUTTON_ABOUT, m_about);
- DDX_Control(pDX, IDC_BUTTON_FIND, m_find);
- DDX_Control(pDX, IDC_PREVIEW, m_pre);
- DDX_Control(pDX, IDC_NEXT, m_next);
- DDX_Control(pDX, IDC_LAST, m_last);
- DDX_Control(pDX, IDC_FIRST, m_first);
- DDX_Control(pDX, IDC_EDIT, m_edit);
- DDX_Control(pDX, IDC_DEL, m_del);
- DDX_Control(pDX, IDC_ADD, m_add);
- //}}AFX_DATA_MAP
- }
- BEGIN_MESSAGE_MAP(PhonePage, CPropertyPage)
- //{{AFX_MSG_MAP(PhonePage)
- ON_WM_CTLCOLOR()
- ON_BN_CLICKED(IDC_FIRST, OnFirst)
- ON_BN_CLICKED(IDC_PREVIEW, OnPreview)
- ON_BN_CLICKED(IDC_NEXT, OnNext)
- ON_BN_CLICKED(IDC_LAST, OnLast)
- ON_BN_CLICKED(IDC_ADD, OnAdd)
- ON_BN_CLICKED(IDC_EDIT, OnEdit)
- ON_BN_CLICKED(IDC_DEL, OnDel)
- ON_BN_CLICKED(IDC_BUTTON_FIND, OnButtonFind)
- ON_BN_CLICKED(IDC_BUTTON_ABOUT, OnButtonAbout)
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
- /////////////////////////////////////////////////////////////////////////////
- // PhonePage message handlers
- BOOL PhonePage::OnInitDialog()
- {
- CPropertyPage::OnInitDialog();
- m_brush.CreateSolidBrush(RGB(0,170,170));
- CRect rect;
- Childdlg.Create(IDD_DETAIL,this);
- Dlghand=Childdlg.GetSafeHwnd();
- GetDlgItem(IDC_STATIC_FRAME)->GetWindowRect(&rect);
- ScreenToClient(&rect);
- ::MoveWindow(Dlghand,rect.left,rect.top,rect.Width(),rect.Height(),0);
- ::ShowWindow(Dlghand,SW_SHOW);
- nAllPage=Childdlg.GetNUM();
- m_showpage=". 1 .";
- GetDlgItem(IDC_STATIC_NUM)->SetWindowText(m_showpage);
- OnFirst();
- Childdlg.SetEditReadOnly(TRUE);
- return TRUE; // return TRUE unless you set the focus to a control
- // EXCEPTION: OCX Property Pages should return FALSE
- }
- HBRUSH PhonePage::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
- {
- HBRUSH hbr = (HBRUSH)m_brush;
- if(nCtlColor==CTLCOLOR_STATIC)
- {
- pDC->SetBkMode(TRANSPARENT);
- return hbr;
- }
- if(nCtlColor==CTLCOLOR_EDIT)
- return NULL;
- return hbr;
- }
- void PhonePage::OnFirst()
- {
- GetDlgItem(IDC_PREVIEW)->EnableWindow(FALSE);
- GetDlgItem(IDC_FIRST)->EnableWindow(FALSE);
- GetDlgItem(IDC_NEXT)->EnableWindow(TRUE);
- GetDlgItem(IDC_LAST)->EnableWindow(TRUE);
- Childdlg.ShowWindow(SW_HIDE);
- AnimateWindow(Childdlg,200, AW_SLIDE | AW_VER_POSITIVE);
-
- Childdlg.ShowDetail(-2);
- nCurrentPage=1;
- m_showpage.Format(". %d .",nCurrentPage);
- GetDlgItem(IDC_STATIC_NUM)->SetWindowText(m_showpage);
- Invalidate();
- }
- void PhonePage::OnPreview()
- {
- if(nCurrentPage==1)
- return ;
- GetDlgItem(IDC_NEXT)->EnableWindow(TRUE);
- GetDlgItem(IDC_LAST)->EnableWindow(TRUE);
- Childdlg.ShowWindow(SW_HIDE);
- AnimateWindow(Childdlg,200, AW_SLIDE | AW_HOR_POSITIVE);
-
- Childdlg.ShowDetail(-1);
- nCurrentPage--;
- m_showpage.Format(". %d .",nCurrentPage);;
- GetDlgItem(IDC_STATIC_NUM)->SetWindowText(m_showpage);
- if(nCurrentPage==1)
- {
- GetDlgItem(IDC_PREVIEW)->EnableWindow(FALSE);
- GetDlgItem(IDC_FIRST)->EnableWindow(FALSE);
- }
- Invalidate();
- }
- void PhonePage::OnNext()
- {
- if(nCurrentPage==nAllPage)
- return ;
- GetDlgItem(IDC_PREVIEW)->EnableWindow(TRUE);
- GetDlgItem(IDC_FIRST)->EnableWindow(TRUE);
- Childdlg.ShowWindow(SW_HIDE);
- AnimateWindow(Childdlg,200, AW_SLIDE | AW_HOR_NEGATIVE);
-
- Childdlg.ShowDetail(1);
- nCurrentPage++;
- m_showpage.Format(". %d .",nCurrentPage);;
- GetDlgItem(IDC_STATIC_NUM)->SetWindowText(m_showpage);
- if(nCurrentPage==nAllPage)
- {
- GetDlgItem(IDC_NEXT)->EnableWindow(FALSE);
- GetDlgItem(IDC_LAST)->EnableWindow(FALSE);
- }
- Invalidate();
- }
- void PhonePage::OnLast()
- {
- if(nCurrentPage==nAllPage)
- return ;
- GetDlgItem(IDC_PREVIEW)->EnableWindow(TRUE);
- GetDlgItem(IDC_FIRST)->EnableWindow(TRUE);
- Childdlg.ShowWindow(SW_HIDE);
- AnimateWindow(Childdlg,200, AW_SLIDE | AW_VER_NEGATIVE);
-
- Childdlg.ShowDetail(2);
- nCurrentPage=nAllPage;
- m_showpage.Format(". %d .",nCurrentPage);
- GetDlgItem(IDC_STATIC_NUM)->SetWindowText(m_showpage);
- if(nCurrentPage==nAllPage)
- {
- GetDlgItem(IDC_NEXT)->EnableWindow(FALSE);
- GetDlgItem(IDC_LAST)->EnableWindow(FALSE);
- }
- Invalidate();
- }
- void PhonePage::OnAdd()
- {
- if(!EditClicked)
- {
- AddClicked=!AddClicked;
- if(AddClicked)
- {
- GetDlgItem(IDC_ADD)->SetWindowText("确定");
- GetDlgItem(IDC_EDIT)->SetWindowText("取消");
- GetDlgItem(IDC_DEL)->ShowWindow(FALSE);
- Childdlg.ClearEditText();
- Childdlg.SetEditReadOnly(FALSE);
- }
- else
- {
- GetDlgItem(IDC_ADD)->SetWindowText("添加新记录");
- GetDlgItem(IDC_EDIT)->SetWindowText("修改记录");
- GetDlgItem(IDC_DEL)->ShowWindow(TRUE);
- Childdlg.NewRecord();
- nAllPage++;
- OnLast();
- }
- }
- else
- {
- GetDlgItem(IDC_ADD)->SetWindowText("添加新记录");
- GetDlgItem(IDC_EDIT)->SetWindowText("修改记录");
- GetDlgItem(IDC_DEL)->ShowWindow(TRUE);
- Childdlg.EditRecord(1);
- EditClicked=!EditClicked;
- }
- }
- void PhonePage::OnEdit()
- {
- if(!AddClicked)
- {
- EditClicked=!EditClicked;
- if(EditClicked)
- {
- GetDlgItem(IDC_ADD)->SetWindowText("确定");
- GetDlgItem(IDC_EDIT)->SetWindowText("取消");
- GetDlgItem(IDC_DEL)->ShowWindow(FALSE);
- Childdlg.SetEditReadOnly(FALSE);
- Childdlg.EditRecord(0);
- }
- else
- {
- GetDlgItem(IDC_ADD)->SetWindowText("添加");
- GetDlgItem(IDC_EDIT)->SetWindowText("修改");
- GetDlgItem(IDC_DEL)->ShowWindow(TRUE);
- Childdlg.SetEditReadOnly(TRUE);
-
- }
- }
- else
- {
- GetDlgItem(IDC_ADD)->SetWindowText("添加新记录");
- GetDlgItem(IDC_EDIT)->SetWindowText("修改记录");
- GetDlgItem(IDC_DEL)->ShowWindow(TRUE);
- Childdlg.SetEditReadOnly(FALSE);
- Childdlg.ShowDetail(0);
- AddClicked=!AddClicked;
- }
- }
- void PhonePage::OnDel()
- {
- Childdlg.DelRecord();
-
- if(nAllPage == nCurrentPage)
- {
- OnPreview();
- }
- else
- OnNext();
- nAllPage--;
- }
- void PhonePage::OnButtonFind()
- {
- FindDlg dlg;
- CString name;
- int sel;
- bool re=1;//显示是否有多个查找结果
- UINT ID=0;
- if(dlg.DoModal()==IDOK)
- {
- name=dlg.GetValue();
- sel=dlg.GetSelect();
- ID = Childdlg.Find(name,sel+1,re);
- if(ID==0)
- {
- MessageBox("没有查到!","查找",MB_OK);
- OnFirst();
- return ;
- }
- Childdlg.GetValue();
- nCurrentPage=ID;
- m_showpage.Format(". %d .",nCurrentPage);
- GetDlgItem(IDC_PREVIEW)->EnableWindow(TRUE);
- GetDlgItem(IDC_FIRST)->EnableWindow(TRUE);
- GetDlgItem(IDC_NEXT)->EnableWindow(TRUE);
- GetDlgItem(IDC_LAST)->EnableWindow(TRUE);
- if(ID == 1)
- {
- GetDlgItem(IDC_PREVIEW)->EnableWindow(FALSE);
- GetDlgItem(IDC_FIRST)->EnableWindow(FALSE);
- }
- else if(ID == (UINT)nAllPage )
- {
- GetDlgItem(IDC_NEXT)->EnableWindow(FALSE);
- GetDlgItem(IDC_LAST)->EnableWindow(FALSE);
- }
- UpdateData(TRUE);
- TRACE("nID is %d",ID);
- }
- }
- void PhonePage::OnButtonAbout()
- {
- AboutDlg dlg;
- dlg.DoModal();
- }