C++ C++;MFC-向组合框添加字符串可防止窗口打开
窗户打不开。如果我删除addstring,它可以正常工作。有什么想法吗?我很惊讶你的代码没有崩溃。在调用DoModal之前,该对话框不存在,也不应为其创建任何子控件。您应该在WM_INITDIALOG(带有基于MFC的对话框的OnInitDialog)的处理程序中初始化子控件C++ C++;MFC-向组合框添加字符串可防止窗口打开,c++,mfc,C++,Mfc,窗户打不开。如果我删除addstring,它可以正常工作。有什么想法吗?我很惊讶你的代码没有崩溃。在调用DoModal之前,该对话框不存在,也不应为其创建任何子控件。您应该在WM_INITDIALOG(带有基于MFC的对话框的OnInitDialog)的处理程序中初始化子控件 @KristerAndersson现在再次加载对话框。它只是不使用AddString或InsertString添加任何内容 void _LayersDialog::OnBnClickedRenameGroup() {
@KristerAndersson现在再次加载对话框。它只是不使用AddString或InsertString添加任何内容
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");
}
}
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;
}
};