我该如何禁用MFC对话框的“确定”按钮?这段代码:
``` CWnd* fieldOK = pDlg->GetDlgItem(IDOK); fieldOK->EnableWindow(FALSE); ```
会导致异常“访问地址出错...”,位于函数`CWnd::EnableWindow(BOOL bEnable)`的文件`winnocc.cpp`中的行`ASSERT(::IsWindow(m_hWnd) || (m_pCtrlSite != NULL))`。此时焦点在另一个控件上。可能出了什么问题?
感谢您的帮助。
[编辑]
``` CWnd* fieldOK = pDlg->GetDlgItem(IDOK); fieldOK->EnableWindow(FALSE); ```
会导致异常“访问地址出错...”,位于函数`CWnd::EnableWindow(BOOL bEnable)`的文件`winnocc.cpp`中的行`ASSERT(::IsWindow(m_hWnd) || (m_pCtrlSite != NULL))`。此时焦点在另一个控件上。可能出了什么问题?
感谢您的帮助。
[编辑]
bool CSCalcNormCell::OnSelectionChanged( CWnd* pDlg, int type, int page, UINT ctrl_id )
{
DDX_DataBox(pDX.get(), IDC_WORKSHOP_COMBO, ws_code);
if (!CInfactoryPriceAdapter::CanEditPricesForWorkshop( ws_code ))
{
CWnd* fieldOK = pDlg->GetDlgItem(IDOK);
fieldOK->EnableWindow(FALSE);
}
else
{
CWnd* fieldOK = pDlg->GetDlgItem(IDOK);
fieldOK->EnableWindow(TRUE);
}
}
bool CSCalcNormCell::OnSelectionChanged(CWnd* pDlg, int type, int page, UINT ctrl_id) { DDX_DataBox(pDX.get(), IDC_WORKSHOP_COMBO, ws_code); if (!CInfactoryPriceAdapter::CanEditPricesForWorkshop(ws_code)) { CWnd* fieldOK = pDlg->GetDlgItem(IDOK); fieldOK->EnableWindow(FALSE); } else { CWnd* fieldOK = pDlg->GetDlgItem(IDOK); fieldOK->EnableWindow(TRUE); } }
- GrinderZ