17、 在View中打印选择的结果
a) 定义四个变量,接受属性页中的值CString m_strSalary、int m_iOccupation、BOOL m_bHobby[4]、CString m_strWorkAddr
b) 在View的构造函数中初始化这四个变量
m_iOccupation=-1;
m_strWorkAddr="";
m_strSalary="";
memset(m_bHobby,0,sizeof(m_bHobby));//这个函数m_bHobby[4]初始化为假
c) 判断sheet.DoModal()的返回值,若是正常结束则开始接受传回来的值
if(ID_WIZFINISH ==sheet.DoModal())
{
m_strSalary=sheet.m_prop3.m_salary;
m_strWorkAddr=sheet.m_prop1.m_workAddr;
m_iOccupation=sheet.m_prop1.m_occupation;
m_bHobby[0]=sheet.m_prop2.m_football;
m_bHobby[1]=sheet.m_prop2.m_basketball;
m_bHobby[2]=sheet.m_prop2.m_swim;
m_bHobby[3]=sheet.m_prop2.m_volleyball;
this->Invalidate();//将view设置无效,引起窗口重绘
}
2、 在View中输出选择的结果
a) 由于我们需要将结果呈现在View中,并且不因窗口的变化而消失,所以我们将输出写在OnDraw()中,可以使得每一次重绘都能重新输出结果
b) 代码如下:
void CPropertyPageDemoView::OnDraw(CDC* pDC)
{
CPropertyPageDemoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CString strTmp="";
strTmp="职业:";
if(m_iOccupation==0)
{
strTmp+="程序员";
}
if(m_iOccupation==1)
{
strTmp+="系统架构师";
}
if(m_iOccupation==2)
{
strTmp+="系统分析师";
}
pDC->TextOut(0,0,strTmp);
TEXTMETRIC tm;
pDC->GetTextMetrics(&tm);//获得当前字体高度
strTmp="工作地点:";
pDC->TextOut(0,tm.tmHeight,strTmp+m_strWorkAddr);
strTmp="爱好:";
if(m_bHobby[0])
{
strTmp+="足球 ";
}
if(m_bHobby[1])
{
strTmp+="篮球 ";
}if(m_bHobby[2])
{
strTmp+="游泳 ";
}
if(m_bHobby[3])
{
strTmp+="排球";
}
pDC->TextOut(0,tm.tmHeight*2,strTmp);
strTmp="薪资水平:";
pDC->TextOut(0,tm.tmHeight*3,strTmp+m_strSalary);
}