gpt4 book ai didi

c++ - 对话框操作中的断言错误

转载 作者:太空狗 更新时间:2023-10-29 20:30:40 31 4
gpt4 key购买 nike

标题很弱,但我会在这里尝试解释。我正在处理 MFC 应用程序。单击按钮时,将创建一个新对话框,将一些字符串添加到第二个对话框的 ComboBox 中,然后显示该对话框。代码如下所示。 Combo1 是在 Class1.h 文件中定义的 CComboBox 变量。问题是当我尝试调用 dlg.Foo() 方法时,程序给我一个 Debug Assertion Error。错误发生在 AddString 行,此外在 afxwin2.inl 文件中,在这行代码中:

{ ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, CB_ADDSTRING, 0, (LPARAM)lpszString); }

CClass1 dlg = new CClass1(this);
dlg.Foo();
dlg.DoModal();

void CClass1::Foo()
{
Combo1.AddString(TEXT("text"));
}

最佳答案

您可以将字符串添加到 OnInitDialog() 内的组合框中,在 DoModal() 期间自动调用:

在标题中:

class CClass1 : public CDialog
{
protected:
virtual BOOL OnInitDialog();
}

在cpp文件中:

BOOL CClass1::OnInitDialog()
{
__super::OnInitDialog();
Combo1.AddString(TEXT("text")); // or just call Foo() here if that's preferred

return TRUE;
}

关于c++ - 对话框操作中的断言错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6204171/

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