Как удалить кнопку ОК, отменить и применить из списков свойств
Поэтому я попытался использовать этот код, и он не работает:
CButton *btnApply;
btnApply = reinterpret_cast<CButton *>(GetDlgItem(IDOK));
btnApply->ShowWindow(FALSE);
Заранее спасибо.
1 ответ
Использование PSH_NOAPPLYNOW
скрыть кнопку "Применить" в PropertySheet
CMyPropertySheet psheet;
psheet.m_psh.dwFlags |= PSH_NOAPPLYNOW;
psheet.DoModal();
Сокрытие кнопки ОК и Отмена может быть обработано в CPropertyPage
требуется указатель на родительское окно, потому что кнопки находятся в родительском окне, а не в окне страницы:
BOOL CMyPropertyPage::OnSetActive()
{
BOOL res = CPropertyPage::OnSetActive();
CPropertySheet* psheet = (CPropertySheet*)GetParent();
psheet->GetDlgItem(IDOK)->ShowWindow(SW_HIDE);
psheet->GetDlgItem(IDCANCEL)->ShowWindow(SW_HIDE);
return res;
}
или в ведомости свойств:
BOOL CMyPropertySheet::OnInitDialog()
{
BOOL res = CPropertySheet::OnInitDialog();
GetDlgItem(IDOK)->ShowWindow(SW_HIDE);
GetDlgItem(IDCANCEL)->ShowWindow(SW_HIDE);
return res;
}
В вашем списке свойств:
BOOL CMyPropertySheet::OnInitDialog()
{
CWnd *pWnd = GetParent()->GetDlgItem(IDHELP);
pWnd->ShowWindow( FALSE );
CWnd *pWnd1 = GetParent()->GetDlgItem(IDCANCEL);
pWnd1->ShowWindow( FALSE );
CWnd *pWnd2 = GetParent()->GetDlgItem(IDOK);
pWnd2->ShowWindow( FALSE );
CWnd *pWnd3 = GetParent()->GetDlgItem(0x3021);// 0x3021 == IDAPPLY
pWnd3->ShowWindow( FALSE )
}