m_iSel,m_fCheck,m_szEdit,m_szCombo);
AfxMessageBox(szOut);
}
//else 未通过检查
}
//通过UpdateData(FALSE)将数据放入窗口
void CMy55_s1Dlg::OnPut()
{
m_szEdit="onPut test";
m_szCombo="onPut test";
UpdateData(FALSE);
}
5.6 使用属性对话框
规则,所以学习起来很方便。属性对话框由两部分构成:多个属性页(CPropertyPage)和属性对话框(CPropertySheet)。
而对于CPropertySheet也需要生成新类,并且将所有需要加入的属性页对象都作为成员变量。属性对话框也分为有模式和无模式两种,有模式属性对话框使用DoModal()创建,无模式属性对话框使用Create()创建。下面的代码演示了如何创建属性对话框并添加属性页: //修改CPropertySheet派生类的构造函数为如下形式
CSheet::CSheet()
:CPropertySheet("test sheet", NULL, 0)
{
m_page1.Construct(IDD_PAGE_1);
m_page2.Construct(IDD_PAGE_2);
AddPage(&m_page1);
AddPage(&m_page2);
}
//创建有模式属性对话框
void CMy56_s1Dlg::OnMod()
{
CSheet sheet;
sheet.DoModal();
}
//创建无模式属性对话框
void CMy56_s1Dlg::OnUnm()
{
CSheet *sheet=new CSheet;
sheet->Create();
}
对于属性对话框可以使用下面的一些成员函数:
?
?
?
? CPropertyPage* CPropertySheet::GetActivePage( )得到当前活动页的指针。 BOOL CPropertySheet::SetActivePage( int nPage )用于设置当前活动页。 int CPropertySheet::GetPageCount()用于得到当前页总数。 void CPropertySheet::RemovePage( int nPage )用于删除一页。
而对于属性页来将主要通过重载一些函数来达到控制的目的:
? void CPropertyPage::OnOK() 在属性对话框上按下“确定”按钮后被调用
?
?
? void CPropertyPage::OnCancel() 在属性对话框上按下“取消”按钮后被调用 void CPropertyPage::OnApply() 在属性对话框上按下“应用”按钮后被调用 void CPropertyPage::SetModified( BOOL bChanged = TRUE ) 设置当前页面上的
数据被修改标记,这个调用可以使“应用”按钮为允许状态。
此外利用属性对话框你可以生成向导对话框,向导对话框同样拥有多个属性页,但同时只有一页被显示,而且对话框上显示的按钮为“上一步”,“下一步”/“完成”,向导对话框会按照你添加页面的顺序依次显示所有的页。在显示属性对话框前你需要调用void CPropertySheet::SetWizardMode()。使用向导对话框时需要对属性页的BOOL
CPropertyPage::OnSetActive( )进行重载,并在其中调用void
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-35251-45.html
活在光环中的女人
爱你