MFC中如何去掉CPropertySheet界面下方的按钮?

 我来答
许北射丶切13
2013-08-24 · TA获得超过101个赞
知道答主
回答量:136
采纳率:100%
帮助的人:75.6万
展开全部
  MFC中CPropertySheet为属性页,页面最下端自动生成的确定、取消、帮助和应用按钮无用,且放置在最下端不太美观,需要将其去掉,笔者在编程过程中采用的方法如下: 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 btnRect;11GetDlgItem(IDCANCEL)-GetWindowRect(&btnRect);1213CRect wdnRect;14GetWindowRect(&wdnRect);1516//调整窗体大小17::SetWindowPos(this-m_hWnd, HWND_TOP,0,0 上述代码添加在CPropertySheet类的OnInitDialog()函数中,可以消除隐藏按钮后留下的空白。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式