在一个对话框中有两个CComboBox 第一个CComboBox在OnInitDialog()函数中通过查询数据库获取选项值 能正常显示 第二个CComboBox与第一个CComboBox关联 根据第一个的选择值查询数据库 获取选项值 对第二个的实现是在VIEW类的成员函数创建对话框对象 根据第一个框的值 查询数据库 进行赋值的 可是第二个框出不来选项值 直接赋值也不行  
void CMONITORSYSView::OnShift()  
{
// TODO: Add your command handler code here
CWYDlg WYDlg;if(IDOK == WYDlg.DoModal())
{
UpdateData(TRUE);CString sql1= "Select * From 多点位移计 Where 工程段名 = '"+WYDlg.m_strProjectName + "'";  
//WYDlg.m_strProjectName是第一个框的CString变量
  // CString sql1= "Select * From 多点位移计";
_bstr_t query1 =sql1;
_bstr_t source1= m_strSource;
try
{
m_recordset->Open(query1,source1, adOpenDynamic,adLockOptimistic,adCmdText);
while(!m_recordset->adoEOF)
{
WYDlg.m_strMeaPlist.AddString((_bstr_t)m_recordset->GetCollect("测点名称"));
m_recordset->MoveNext();
}
m_recordset->Close();
}
catch(_com_error e)  
{  
MessageBox(e.Description());}
WYDlg.m_strMeaPlist.AddString("测点名称");// 直接添加的也不出来
UpdateData(FALSE);
}
}

解决方案 »

  1.   

    OnShift()函数中你定义了CWYDlg WYDlg;
    然后调用WYDlg::DoModal()来显示模态对话框了?DoModal()函数返回以后,你的对话框CWYDlg的m_hWnd窗口句柄都为NULL了,你后面的跟窗口相关的操作都失败?难道没有弹出异常对话框???
      

  2.   

    我弄好了 OnShift()里面还是要WYDlg::DoModal()的 只是他的语句是空 弹出我的对话框后我可以设置啊 然后再点对话框的按钮提交任务能实现啊 对于两个CComboBox的问题我给第一个添加了一个void CWYDlg::OnSelchangeProjectname() 就好了