CComboBox :: GetLBText returns garbage

I fill in the combo box:

    while((pHPSet = pHPTable->GetNext()) != NULL)
    {       
      CString str = pHPSet->GetName();
          // I am normally using str but to proove that this is 
          // not the problem I am using "a"
      m_comboBaseHP.AddString(_T("a"));
    }

      

Now I'm trying to read the combobox:

if(m_comboBaseHP.GetCount() > 0)
{
    CString csHPName = _T("");
    m_comboBaseHP.GetLBText(0, csHPName);
    // This is the ms way but ReleaseBuffer causes a crash
    //CString str = _T("");
    //int n = m_comboBaseHP.GetLBTextLen( 0 );
    //m_comboBaseHP.GetLBText( 0, str.GetBuffer(n) );
    //str.ReleaseBuffer();

    // Do whatever with csHPName
}

      

The problem is that csHPName shows some Chinese characters in the Debugger. I guess this is memory garbage. This happens in the same method. This happens before the draw. The post paints the same problem. This happens in Debug and Release. I don't understand how this can happen as I am not actually working with pointers.

+3


source to share


1 answer


Apparently the Has Strings of combobox property needs to be set to True.



+5


source







All Articles