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");
}
}
Run Code Online (Sandbox Code Playgroud)
窗户拒绝打开.如果我删除了添加字符串,它工作正常.有任何想法吗?
我很惊讶你的代码没有崩溃.在您调用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;
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
939 次 |
| 最近记录: |