// Prop1.cpp : 实现文件
//
#include "stdafx.h"
#include "MyMFC2-Dialog.h"
#include "Prop1.h"
#include "afxdialogex.h"
// CProp1 对话框
IMPLEMENT_DYNAMIC(CProp1, CPropertyPage)
CProp1::CProp1()
: CPropertyPage(CProp1::IDD)
, m_occupation(-1)
, m_workAddr(_T(""))
{
}
CProp1::~CProp1()
{
}
void CProp1::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
DDX_Radio(pDX, IDC_RADIO1, m_occupation); //自动产生的,用来在按钮控件与成员变量之间交换数据
DDX_LBString(pDX, IDC_LIST1, m_workAddr);
}
BEGIN_MESSAGE_MAP(CProp1, CPropertyPage)
END_MESSAGE_MAP()
// CProp1 消息处理程序
BOOL CProp1::OnSetActive()
{
// TODO: 在此添加专用代码和/或调用基类
((CPropertySheet*)GetParent())->SetWizardButtons(PSWIZB_NEXT); //在第一个属性页上面只有“下一步”按钮可用
return CPropertyPage::OnSetActive();
}
/************************************************************************************************************************/
//当用户单击属性页上的“下一步”按钮后,程序将调用OnWizardNext这个虚函数,如果这个函数返回0,那么程序自动进入下一个属性页;如果返回-1,将禁止属性页发生变更
//所以可以添加OnWziardNext虚函数,在函数中进行判断,如果用户没有没有做出选择,就禁止用户进入下一个页面
//首先,要为第一个按钮关联一个成员变量。在该按钮上右击-添加变量,其对应的ID号不是这个按钮的ID号,###需要将该组件中的第一个按钮属性中的Group设为TRUE
//这样才可以为该控件关联一个成员变量,类别选择Value,类型选择int,初始值设为-1。这样当选中第一个按钮时,关联的变量值为1,选择第二个按钮时,关联的变量为2,
//选择第三个按钮时,关联的变量为3。在程序中通过判断该关联成员变量的值,就知道用户选择的是哪个按钮控件,不选择,则值为-1.
LRESULT CProp1::OnWizardNext()
{
// TODO: 在此添加专用代码和/或调用基类
UpdateData(TRUE); //实现控件与成员变量的数据交换,参数为TRUE,表示从控件得到成员变量。为FALSE,表示用成员变量的值初始化控件
if (m_occupation == -1)
{
MessageBox(CString("请选择你的职业"));
return -1; //返回-1是禁止的意思
}
//判断用户是否选择了工作地点
//也是先要为List Box控件关联一个m_workAddr成员变量,类别为Value,类型为CString,
if (m_workAddr == "")
{
MessageBox(_T("请选择你的工作地点"));
return -1;
}
return CPropertyPage::OnWizardNext();
}
/*********************************************************************************************************************/
//用来为属性页的List Box中添加文字。在OnInitDialog函数可以实现,在这个属性页显示之前向列表框中增加一些工作地点
BOOL CProp1::OnInitDialog() //由添加OnInitDialog虚函数的到
{
CPropertyPage::OnInitDialog();
// TODO: 在此添加额外的初始化
((CListBox*)GetDlgItem(IDC_LIST1))->AddString(_T("北京")); //AddString函数可以向列表控件中添加文字
((CListBox*)GetDlgItem(IDC_LIST1))->AddString(_T("天津"));
((CListBox*)GetDlgItem(IDC_LIST1))->AddString(_T("上海"));
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
MyMFC(7-9)对话框 CProp1
最新推荐文章于 2015-05-04 12:07:00 发布