【VC开源代码栏目提醒】:网学会员VC开源代码为您提供MyInfoPage.cpp参考,解决您在MyInfoPage.cpp学习中工作中的难题,参考学习。
// MyInfoPage.cpp : 实现文件
//
#include "stdafx.h"
#include "ECClient.h"
#include "MyInfoPage.h"
#include ".\myinfopage.h"
#include "ClientSheetDlg.h"
// CMyInfoPage 对话框
int buy_item_num = 0;//用户购书次数
int buy_item_pos = 0;//界面显示的购书位置
CList<BuyItem,BuyItem&> buy_book_list;//购书链表
IMPLEMENT_DYNAMIC(CMyInfoPage, CPropertyPage)
CMyInfoPage::CMyInfoPage()
: CPropertyPage(CMyInfoPage::IDD)
{
}
CMyInfoPage::~CMyInfoPage()
{
}
void CMyInfoPage::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CMyInfoPage, CPropertyPage)
ON_BN_CLICKED(IDC_BUTTON_DEL, OnBnClickedButtonDel)
ON_BN_CLICKED(IDC_BUTTON_NEXT, OnBnClickedButtonNext)
END_MESSAGE_MAP()
// CMyInfoPage 消息处理程序
BOOL CMyInfoPage::OnInitDialog()
{
CPropertyPage::OnInitDialog();
// TODO: 在此添加额外的初始化
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
BOOL CMyInfoPage::OnSetActive()
{
// TODO: 在此添加专用代码和/或调用基类
return CPropertyPage::OnSetActive();
}
int CMyInfoPage::SetUserInfo(User& user)//显示用户信息
{
SetDlgItemText(IDC_EDIT_NAME,user.name);
SetDlgItemInt(IDC_EDIT_ID,user.id);
SetDlgItemText(IDC_EDIT_PASSWORD,user.pass
word);
return 0;
}
void CMyInfoPage::OnBnClickedButtonDel()
{
// TODO: 在此添加控件通知处理
程序代码
CClientSheetDlg* sheetDlg = (CClientSheetDlg*)GetParent();
sheetDlg->DropBook(GetDlgItemInt(IDC_EDIT_BUY_BOOK_ID));//退书
}
int CMyInfoPage::SetBuyBookInfo(BuyItem& buyitem)
{
//把用户本人的购书信息保存
buy_book_list.AddTail(buyitem);//加入购书链表
if(buy_item_num==0)//默认显示第一条购书记录
{
SetDlgItemText(IDC_EDIT_BUY_BOOK_NAME,buy_book_list.GetHead().book.book_name);
SetDlgItemInt(IDC_EDIT_BUY_BOOK_ID,buy_book_list.GetHead().book.book_id);
SetDlgItemInt(IDC_EDIT_BUY_NUM,buy_book_list.GetHead().buy_num);
}
buy_item_num++;
return 0;
}
int CMyInfoPage::DropBook(BuyItem& buyitem)//退书成功
{
CString str;
str.Format("退书成功,你退的书是:%s,共%d册",buyitem.book.book_name,buyitem.buy_num);
AfxMessageBox(str);
//从界面上去掉
if(GetDlgItemInt(IDC_EDIT_BUY_BOOK_ID)==buyitem.book.book_id)
{
SetDlgItemText(IDC_EDIT_BUY_BOOK_NAME,"");
SetDlgItemText(IDC_EDIT_BUY_BOOK_ID,"");
SetDlgItemText(IDC_EDIT_BUY_NUM,"");
}
//从购书链表中删除
for(int i=0;i<buy_item_num-1;i++)
{//找到退购的书目,然后从链表中删除
if(buy_book_list.GetAt(buy_book_list.FindIndex(i)).book.book_id==buyitem.book.book_id)
{
buy_book_list.RemoveAt(buy_book_list.FindIndex(i));
}
}
return 0;
}
void CMyInfoPage::OnBnClickedButtonNext()//显示下条购书记录
{
// TODO: 在此添加控件通知处理程序代码
//循环显示购书记录
if(buy_item_pos==0)//假如当前用户没有购买书籍
return;
if(buy_item_pos==(buy_item_num-1)&&buy_item_pos!=0)//是否是最后一条记录
{
buy_item_pos = 0;
DispBuyBookInfo(buy_item_pos);
}
DispBuyBookInfo(++buy_item_pos); //显示第buy_item_pos条购书记录
}
int CMyInfoPage::DispBuyBookInfo(int buy_item)//显示购书信息
{
if(buy_item==buy_item_num)
{
AfxMessageBox("已到最后一条");
return -1;
}
//在界面上显示
SetDlgItemText(IDC_EDIT_BUY_BOOK_NAME,buy_book_list.GetAt(buy_book_list.FindIndex(buy_item)).book.book_name);
SetDlgItemInt(IDC_EDIT_BUY_BOOK_ID,buy_book_list.GetAt(buy_book_list.FindIndex(buy_item)).book.book_id);
SetDlgItemInt(IDC_EDIT_BUY_NUM,buy_book_list.GetAt(buy_book_list.FindIndex(buy_item)).buy_num);
return 0;
}