Как удалить кнопку справки по умолчанию в CPropertySheet в MFC?
Я использую класс CPropertySheet для своего дизайна в приложении MFC, обычно в CPropertySheet было бы 4 кнопки по умолчанию.. Я хочу скрыть / удалить кнопку HELP.. Я попробовал следующее.. но оно не работает / ни один не отвечает.. Я если бы это было написано в моем классе CPropertyPage, есть ли другой способ...
m_psh.dwFlags & = ~ PSH_HASHELP;
5 ответов
// Destroy the Help button
CButton *btnHelp;
btnHelp = reinterpret_cast<CButton *>(GetDlgItem(IDHELP));
btnHelp->DestroyWindow();
Страницы свойств также имеют 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
Перейдите к основному файлу cpp вашего проекта (где определено theApp).
Удалить эту строку: ON_COMMAND(ID_HELP, CWinApp::OnHelp)
Адитья Паланки
Это должно сработать:
Переопределите метод OnNotify класса, производного от PropertySheet, запишите в него следующий код
CWnd *hwnd = GetDlgItem(IDHELP); hwnd->ShowWindow(SW_HIDE);