如何删除MFC中CPropertySheet中默认的帮助按钮?

问题描述 投票:0回答:5

我在MFC应用程序中使用

CPropertySheet
类进行设计,通常在
CPropertySheet
中会有4个默认按钮。我想隐藏/删除“帮助”按钮。我尝试了以下操作,但它不起作用/没有响应。我在
CPropertyPage
课上写过这个 还有其他办法吗...

m_psh.dwFlags &= ~PSH_HASHELP;
mfc button cpropertysheet
5个回答
13
投票

属性页还有一个需要清除的

HASHELP
标志。属性表构造函数中的以下代码应该可以工作:

// After the last AddPage() call:
m_psh.dwFlags &= ~PSH_HASHELP;
for(int i=0; i<GetPageCount(); ++i)
    GetPage(i)->m_psp.dwFlags &= ~PSP_HASHELP;

或者,也可以在调用

m_psp
之前修改每个单独页面的
AddPage()
标志:

m_psh.dwFlags &= ~PSH_HASHELP;
page1.m_psp.dwFlags &= ~PSP_HASHELP;
AddPage(&page1);
// ...

4
投票

http://msdn.microsoft.com/de-de/library/37k4h0bh(v=vs.80).aspx

您必须从工作表和所有页面中删除标志...

mySheet.m_psh.dwFlags &= ~PSH_HASHELP;
page1.m_psp.dwFlags &= ~PSP_HASHELP;
page2.m_psp.dwFlags &= ~PSP_HASHELP;

...

注意差异:m_psh 与 m_psp 和 PSH_HASHELP 与 PSP_HASHELP


3
投票
// Destroy the Help button
CButton *btnHelp;

btnHelp = reinterpret_cast<CButton *>(GetDlgItem(IDHELP));
btnHelp->DestroyWindow();

2
投票

转到项目的主 cpp 文件(定义 theApp 的位置)。
删除这一行:

ON_COMMAND(ID_HELP, CWinApp::OnHelp)

阿迪亚·帕兰基


0
投票

这应该可行:

重写PropertySheet派生类的OnNotify方法,写入以下代码

CWnd *hwnd = GetDlgItem(IDHELP); hwnd->显示窗口(SW_HIDE);

© www.soinside.com 2019 - 2024. All rights reserved.