属性页一定是由几个页面构成的,首先要创建几个基类是CPropertyPage的对话框。例如,创建两个类,CTestPage1 、CTestPage2
一定要有一个类去管理几个属性页面,然后要创建一个基类是CPropertySheet的类。例如,CTestSheet
- 各部件准备好了,然后就要组合起来。在CTestSheet.cpp文件中找到下面这个构造函数:
CTestSheet::CTestSheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
a、先在CTestSheet.h中声明两个属性页面对象
CTestPage1 m_testpage1;
CTestPage2 m_testpage2;
b、在上面的构造函数中,添加属性页面,如下
AddPage(&m_testpage1);
AddPage(&m_testpage2);
c、各部件都组装好了,只要定义对象,然后就可以调用了。
CTestSheet sheet(_T("属性页"));
sheet.DoModal();
去掉属性页底下的四个按钮:确定、取消、应用、帮助
应用按钮:在上面的构造函数中添加语句:
m_psh.dwFlags |= PSH_NOAPPLYNOW;
帮助按钮:方法一、在上面的构造函数
m_psh.dwFlags &= ~(PSH_HASHELP);
m_testpage1.m_psp.dwFlags&= ~(PSP_HASHELP);
m_testpage2.m_psp.dwFlags&= ~(PSP_HASHELP);
确定按钮和取消按钮:在OnInitDialog函数中添加语句:
pWnd =GetDlgItem(IDOK);
if(pWnd && pWnd->GetSafeHwnd())
{pWnd->ShowWindow(false);}
pWnd =GetDlgItem(IDCANCEL);
if(pWnd && pWnd->GetSafeHwnd())
同样,还可以采用下面的方式,去掉四个按钮,同时还消去界面下方的空白区,在OnInitDialog函数中添加语句:
GetDlgItem(IDOK)->ShowWindow(SW_HIDE);
GetDlgItem(IDHELP)->ShowWindow(SW_HIDE);
GetDlgItem(IDCANCEL)->ShowWindow(SW_HIDE);
GetDlgItem(ID_APPLY_NOW)->ShowWindow(SW_HIDE);
//获取窗体尺寸
CRect btnRect;
GetDlgItem(IDCANCEL)->GetWindowRect(&btnRect);
CRect wdnRect;
GetWindowRect(&wdnRect);
//调整窗体大小
::SetWindowPos(this->m_hWnd, HWND_TOP,0,0,wdnRect.Width(),wdnRect.Height()-btnRect.Height(),NULL);