gpt4 book ai didi

c++ - 禁用对话框确定按钮 MFC

转载 作者:可可西里 更新时间:2023-11-01 18:29:30 24 4
gpt4 key购买 nike

如何禁用 MFC 对话框的“确定”按钮?
此代码:
CWnd* fieldOK = pDlg->GetDlgItem(IDOK);<br/>
fieldOK->EnableWindow(FALSE);

导致异常“访问冲突读取位置...” 在线 ASSERT(::IsWindow(m_hWnd) || (m_pCtrlSite != NULL));功能CWnd::EnableWindow(BOOL bEnable)winnocc.cpp来自 mfc90d.dll
此时焦点在另一个控件上。
什么是错的?

感谢您的帮助。

[编辑]

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);
}
}

最佳答案

我不确定为什么不能这样做。如果我使用常规 CDialog 并执行如下初始化:

BOOL CMyDialog::OnInitDialog() {
CDialog::OnInitDialog();
CWnd *okbtn = GetDlgItem( IDOK );
if ( okbtn ) {
okbtn->EnableWindow( FALSE );
}
return TRUE;
}

它可以很好地禁用按钮。也许还有其他问题?

关于c++ - 禁用对话框确定按钮 MFC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17233639/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com