hur.cn - 华软网

 热门搜索

combox简单问题 从数据库中取值

  作者:未知    来源:网络    更新时间:2011/1/8
点击按钮时调用
C++">void CTestApp::OnMENUUserGroups() 
{
// TODO: Add your command handler code here
CUserGroups dlg;
dlg.GetUserName();
dlg.DoModal();
}


GetUserName函数在 CUserGroups中
C++">void CUserGroups::GetUserName()
{
ADOConn m_AdoConn;
//连接数据库
m_AdoConn.OnInitADOConn();
_bstr_t vSQL = "select username from user";
_RecordsetPtr m_pRecordset;
m_pRecordset = m_AdoConn.GetRecordSet(vSQL);

while(!m_pRecordset->adoEOF)
{
((CComboBox*)GetDlgItem(IDC_COMBOUserName))->AddString((_bstr_t)m_pRecordset->GetCollect("username"));
//((CComboBox*)GetDlgItem(IDC_COMBOUserName))->AddString("123"); 这样也有毛病
}
m_AdoConn.ExitConnect();
}


现在的现象是点击菜单中的这个对话框 程序直接就溃散了  另外运用combox的时候是否是应该在DoDataExchange绑定中DDX_Control(pDX, IDC_COMBOUserName, m_UserName);有这句呢?
照旧DDX_CBString(pDX, IDC_COMBOUserName, m_Username);
应该是第一个正确吧?
---华软 网友回答---
  class="deleted_message"> 该回复于2011-01-10 13:43:09被版主删除
---华软网友回复---
程序直接就溃散
在哪蹦的呢? 是这句?
C++">((CComboBox*)GetDlgItem(IDC_COMBOUserName))->AddString((_bstr_t)m_pRecordset->GetCollect("username"));

DDX_Control(pDX, IDC_COMBOUserName, m_UserName);联系关系控件的“变量”是该控件类型(CComboBox)的变量;
DDX_CBString(pDX, IDC_COMBOUserName, m_Username);联系关系控件的“变量”是CString类型的变量
能够用GetDlgItem获得窗口指针后强制类型转换,接着运用成员函数,所以觉得
((CComboBox*)GetDlgItem(IDC_COMBOUserName))->AddString((_bstr_t)m_pRecordset->GetCollect("username"));

这样的用法没错,
代码分开来看看呢,看挂在哪
CString sItem = (_bstr_t)m_pRecordset->GetCollect("username");
((CComboBox*)GetDlgItem(IDC_COMBOUserName))->AddString(sItem);

     
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。