现在的位置: 首页 > 综合 > 正文

VC++ MFC属性页使用说明(孙鑫视频教程总结)(4)

2013年09月13日 ⁄ 综合 ⁄ 共 2017字 ⁄ 字号 评论关闭

17、 View中打印选择的结果

a)         定义四个变量,接受属性页中的值CString m_strSalaryint m_iOccupationBOOL 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);

         

}

抱歉!评论已关闭.