您的位置:首页 > 其它

MFC之添加属性页

2015-09-21 15:42 399 查看
属性页一定是由几个页面构成的,首先要创建几个基类是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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: