addstring()函数报错。求指教,该怎么处理

addstring()函数报错。求指教
在调用CComboBox的addstring()函数的时候,编译没有问题。执行时发生错误。
_AFXWIN_INLINE int CComboBox::AddString(LPCTSTR lpszString)
{ ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, CB_ADDSTRING, 0, (LPARAM)lpszString); }
知道是因为mhwnd的值为NULL。似乎是没有初始化ccmobox对象。
我的部分代码如下:

BOOL CClientDlg::OnInitDialog()
{
CDialog::OnInitDialog();
        //vs自动添加的代码
        dlg.m_editCtrl.Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER, CRect(10, 10, 100, 100), &dlg, 1);
dlg.m_comboxCtrl.Create( WS_CHILD|WS_VISIBLE|WS_VSCROLL|CBS_DROPDOWNLIST,CRect(10,10,200,100), &dlg, 1);
dlg.m_comboxCtrl.AddString( _T("test"));
dlg.m_editCtrl.SetWindowTextW( _T("test"));

注:
dlg是一个点击按钮就弹出的静态对话框。已经在主对话框中定义了。m_comboxCtrl和m_editCtrl是在dlg中的变量。对应两个控件。
按钮的代码如下:
dlg.DoModal();

------解决方案--------------------
CComboBox* comb = (CComboBox*)GetDlgItem(com的标识);
然后直接用comb->AddString
------解决方案--------------------
CClientDlg是不是在dlg.DoModal()执行完执行呀。。?

DoModal()结束后对话框也不复存在了,所以句柄为空。。
------解决方案--------------------
m_comboxCtrl显然没创建成功(m_hWnd=0),
dialog上创建/子类化控件按说有2种方式:
DDX_control或subclassDlgItem,这是资源创建方式,必须保证dialog上有个combox控件;
另一种就是现在你用的create啦,这叫动态创建;二者一般不能混用,
如果楼主要用动态创建的方式,那么现在看看你那个dialog资源上有那个combox控件吗,有的话删掉,在检查对应的DDX_control有么,有的话也删掉,估计就能创建成功了;
另外,
4楼那个方法是直接拿句柄去啦,也应该保证dialog资源上有个combox控件,只不过这种方法没子类化罢了,是直接拿来用的,当然可以替换你的create函数~