我在MFC应用程序中使用
CPropertySheet
类进行设计,通常在CPropertySheet
中会有4个默认按钮。我想隐藏/删除“帮助”按钮。我尝试了以下操作,但它不起作用/没有响应。我在CPropertyPage
课上写过这个
还有其他办法吗...
m_psh.dwFlags &= ~PSH_HASHELP;
属性页还有一个需要清除的
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);
// ...
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
// Destroy the Help button
CButton *btnHelp;
btnHelp = reinterpret_cast<CButton *>(GetDlgItem(IDHELP));
btnHelp->DestroyWindow();
转到项目的主 cpp 文件(定义 theApp 的位置)。
删除这一行:
ON_COMMAND(ID_HELP, CWinApp::OnHelp)
阿迪亚·帕兰基
这应该可行:
重写PropertySheet派生类的OnNotify方法,写入以下代码
CWnd *hwnd = GetDlgItem(IDHELP); hwnd->显示窗口(SW_HIDE);