
1.去掉应用按钮。在CPropertySheet的构造函数中添加添加语句:this-m_psh.dwFlags |= PSH_NOAPPLYNOW
作用是去掉应用按钮。
2.去掉帮助按钮的 *** 作稍微复杂一些,需要在CPropertySheet的构造函数中加上如下语句:this-m_psh.dwFlags &= ~
(PSH_HASHELP)
page1.m_psp.dwFlags&= ~(PSP_HASHELP)
page2.m_psp.dwFlags
&= ~(PSP_HASHELP)
然后才能添加属性页:this-AddPage(&page1)this-AddPage(&page2)
需要注意的是,由于添加属性页的 *** 作不一定在CPropertySheet的构造函数中,因此只需要保证CPropertySheet对象和属性页CPropertyPage对象中都有去掉上述去掉帮助按钮的语句即可。
另外,帮助按钮还可以采用如下方法去掉:
在CPropertySheet的OnInitDialog()函数中加入如下语句(若没有生成OnInitDialog,可在ClassView中添加虚函数OnInitDialog):
CWnd *pWnd =
GetDlgItem(IDHELP)if(pWnd &&pWnd-
GetSafeHwnd()){pWnd-ShowWindow(false)}
3.去掉确定和取消按钮。在CPropertySheet的OnInitDialog()函数中加入如下语句:1CWnd *pWnd =
GetDlgItem(IDOK)2if(pWnd &&pWnd-
GetSafeHwnd()){3pWnd-ShowWindow(false)4}56pWnd =GetDlgItem(IDCANCEL)7if(pWnd &&pWnd-
GetSafeHwnd()){8pWnd-ShowWindow(false)9}
上述方法去掉按钮后,在界面下方的按钮会消失,但是会留下空白,需要重新调整窗口,消除空白,此时可以考虑如下方法:
4.去掉四个按钮后消除界面下方的空白。1GetDlgItem(IDOK)-
ShowWindow(SW_HIDE)23GetDlgItem(IDHELP)-
ShowWindow(SW_HIDE)45GetDlgItem(IDCANCEL)-
ShowWindow(SW_HIDE)67GetDlgItem(ID_APPLY_NOW)-
ShowWindow(SW_HIDE)89//获取窗体尺寸10CRect btnRect11GetDlgItem(IDCANCEL)-GetWindowRect(&btnRect)1213CRect wdnRect14GetWindowRect(&wdnRect)1516//调整窗体大小17::SetWindowPos(this-m_hWnd, HWND_TOP,0,0
上述代码添加在CPropertySheet类的OnInitDialog()函数中,可以消除隐藏按钮后留下的空白。
在“Class View”中找到“CSummandPage”节点,点右键d出右键菜单,选择“Properties”,然后VS2010右侧面板上会显示对话框的属性列表,属性列表的工具栏上有个tip信息为“Overrides”的按钮,按下它,下方列表中就列出了重载函数,找到“OnSetActive”,点其右侧空白列表项出现向下箭头,再点箭头就在下面出现了“<Add>OnSetActive”的选项,选择它就会自动在CSummandPage类中添加函数OnSetActive。C++代码
BOOL CSummandPage::OnSetActive()
{
// TODO: Add your specialized code here and/or call the base class
// 获得父窗口,即属性表CPropertySheet类
CPropertySheet* psheet = (CPropertySheet*) GetParent()
// 设置属性表只有“下一步”按钮
psheet->SetWizardButtons(PSWIZB_NEXT)
return CPropertyPage::OnSetActive()
}
这个实现起来很简单,首先CDialog提供一个static类指针,用于返回自身初始化好的指针。然后当点击退出按钮后,就调用这个static指针,发送WM_CLOSE即可。CDialog::m_dialog->PostMessage(WM_CLOSE, 0, 0)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)