如何从属性表中删除确定,取消和应用按钮

Ran*_*ani -1 c++ mfc cpropertysheet visual-c++

所以我尝试使用此代码,但它不起作用:

CButton *btnApply;
btnApply = reinterpret_cast<CButton *>(GetDlgItem(IDOK));
btnApply->ShowWindow(FALSE);
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Bar*_*ani 5

使用PSH_NOAPPLYNOW隐藏在的PropertySheet应用按钮

CMyPropertySheet psheet;
psheet.m_psh.dwFlags |= PSH_NOAPPLYNOW;
psheet.DoModal();
Run Code Online (Sandbox Code Playgroud)

可以处理隐藏确定和取消按钮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;
}
Run Code Online (Sandbox Code Playgroud)

或在财产表中:

BOOL CMyPropertySheet::OnInitDialog()
{
    BOOL res = CPropertySheet::OnInitDialog();
    GetDlgItem(IDOK)->ShowWindow(SW_HIDE);
    GetDlgItem(IDCANCEL)->ShowWindow(SW_HIDE);
    return res;
}
Run Code Online (Sandbox Code Playgroud)