gpt4 book ai didi

C++ MFC - 将字符串添加到组合框会阻止窗口打开

转载 作者:太空宇宙 更新时间:2023-11-04 15:05:21 24 4
gpt4 key购买 nike

void _LayersDialog::OnBnClickedRenameGroup()
{
LOG("CLICKED ON RENAME GROUP\n");
_LayersNameDialog name_dlg;

CComboBox* pComboBox = (CComboBox*)name_dlg.GetDlgItem(IDC_LAYERRENAME_COMBO);

pComboBox->AddString("moose");

// open the rename window
if (name_dlg.DoModal() == IDOK)
{
LOG("HIT OK");
}
}

window 打不开。如果我删除 addstring,它工作正常。有什么想法吗?

最佳答案

我很惊讶你的代码没有崩溃。在您调用 DoModal 之前,该对话框不存在,也不应该有任何子控件。您应该在 WM_INITDIALOG 的处理程序中初始化子控件(带有基于 MFC 的对话框的 OnInitDialog)。

class _LayersNameDialog : public CDialog
{
// See: http://msdn.microsoft.com/en-us/vstudio/fwz35s59(v=vs.110)
BOOL OnInitDialog() override
{
CDialog::OnInitDialog();
CComboBox* pComboBox = (CComboBox*)GetDlgItem(IDC_LAYERRENAME_COMBO);
pComboBox->AddString("moose");
return TRUE;
}
};

关于C++ MFC - 将字符串添加到组合框会阻止窗口打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16681275/

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