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

5 篇文章 0 订阅

 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()函数中加入如下语句:

复制代码
1 CWnd *pWnd = GetDlgItem(IDOK);
2 if(pWnd && pWnd->GetSafeHwnd()){
3     pWnd->ShowWindow(false);
4 }
5 
6 pWnd = GetDlgItem(IDCANCEL);
7 if(pWnd && pWnd->GetSafeHwnd()){
8     pWnd->ShowWindow(false);
9 }
复制代码

 

上述方法去掉按钮后,在界面下方的按钮会消失,但是会留下空白,需要重新调整窗口,消除空白,此时可以考虑如下方法:

 

4.去掉四个按钮后消除界面下方的空白。

复制代码
 1 GetDlgItem(IDOK)->ShowWindow(SW_HIDE); 
 2 
 3 GetDlgItem(IDHELP)->ShowWindow(SW_HIDE);
 4      
 5 GetDlgItem(IDCANCEL)->ShowWindow(SW_HIDE); 
 6     
 7 GetDlgItem(ID_APPLY_NOW)->ShowWindow(SW_HIDE);
 8 
 9 //获取窗体尺寸
10 CRect btnRect;
11 GetDlgItem(IDCANCEL)->GetWindowRect(&btnRect); 
12    
13 CRect wdnRect; 
14 GetWindowRect(&wdnRect);
15  
16 //调整窗体大小     
17 ::SetWindowPos(this->m_hWnd, HWND_TOP, 0,0,wdnRect.Width(),wdnRect.Height() - btnRect.Height(), SWP_NOMOVE | SWP_NOZORDER); 
复制代码

上述代码添加在CPropertySheet类的OnInitDialog()函数中,可以消除隐藏按钮后留下的空白。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值