我设计的是一个基于对话框的程序,当点下一个按钮时弹出另一个对话框,对话框上有两个组合框,怎么才能将这两个组合框的数据读出来呢?我试过在弹出的对话框中,这样做

void CQueryDlg::OnOK() 
{
int nIndex;
nIndex = ((CComboBox*)GetDlgItem(IDC_COMBO_SEX))->GetCurSel();
((CComboBox*)GetDlgItem(IDC_COMBO_SEX))->GetLBText(nIndex, strCComBocTextSex);
strCComBocTextItem = GetDlgLBText(IDC_COMBO_ITEM, m_Item);
CDialog::OnOK();
}
也试过在父窗口中这样做
void CMYADODlg::OnButtonAdd() 
{
// TODO: Add your control notification handler code here
CQueryDlg queryDlg;
CString str;
if (queryDlg.DoModal() == IDOK)
{
queryDlg.GetDlgItem(IDC_COMBO_ITEM)->GetWindowText(str);//IDC_COMBO_ITEM为组合框的ID
}
}
在编译时,但是在执行时却弹出很大的错误,怎么办啊

解决方案 »

  1.   

    问题刚才解决了,用下面的方法实现的
    void CQueryDlg::OnOK()  
    {
    ((CComboBox*)GetDlgItem(IDC_COMBO_SEX))->GetWindowText(strCComBocTextSex);
    ((CComboBox*)GetDlgItem(IDC_COMBO_ITEM))->GetWindowText(strCComBocTextItem);
     CDialog::OnOK();
    }
    但是上面的问题是为什么啊?为什么这样就可以做出来啊?
      

  2.   

    GetDlgItem返回的是要是CWnd*的,因为你本来是CCombobox *,所以强制转换一下才对。