我在 MFC 应用程序中为我的设计使用 CPropertySheet 类,通常在 CPropertySheet 中会有 4 个默认按钮..我想隐藏/删除帮助按钮..我尝试了以下..但它不起作用/没有响应..I把这个写在我的 CPropertyPage 类中有没有其他方法......
m_psh.dwFlags &= ~PSH_HASHELP;
我在 MFC 应用程序中为我的设计使用 CPropertySheet 类,通常在 CPropertySheet 中会有 4 个默认按钮..我想隐藏/删除帮助按钮..我尝试了以下..但它不起作用/没有响应..I把这个写在我的 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_ps h与 m_ps p和 PS H _HASHELP 与 PS P _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->ShowWindow(SW_HIDE);