windows - hvor er valgmulighederne for en MFC-kombinationsboks gemt?

Indlæg af Hanne Mølgaard Plasc

Problem



Givet en ressourcefil, der indeholder en kombinationsboksdefinition, til et C ++ MFC-program, er der en måde at programmært opnå optionstrengene på?


Når du definerer en dialogboks i Visual Studio ressource editoren, kan du angive valgmulighederne med en ; afgrænset streng. Hvor gemmes disse strings derefter? Jeg forstår også, at man kan programmere tilføje strenge til dialogboksen under dialog init, at opnå dem er en anden historie.


Ikke desto mindre er mit problem, at jeg ikke har adgang til dialogobjektet, det er heller ikke synligt på det tidspunkt, jeg ønsker at få mulighed for strings. Er det muligt?

Bedste reference


Du kan oprette en medlemsvariabel for combobox eller


CComboBox* pBoxOne;
pBoxOne = (CComboBox*) GetDlgItem(IDC\_COMBO1);

  CString str, str2;
  int n;
  for (int i=0;i < pBoxOne->GetCount();i++)
  {
    n = pBoxOne->GetLBTextLen( i );
    pBoxOne->GetLBText( i, str.GetBuffer(n) );
    str.ReleaseBuffer();

    str2.Format(\_T("item \%d: \%s
"), i, str.GetBuffer(0));
    afxDump << str2;
   }


Optionsstrengene gemmes i selve ressourcefilen. Jeg har tilføjet indstillinger som 1; 2; 3 og ressourcefilerne er


IDD\_MFC\_DIALOG\_DIALOG DLGINIT
BEGIN
    IDC\_COMBO1, 0x403, 2, 0
0x0031, 
    IDC\_COMBO1, 0x403, 2, 0
0x0032, 
    IDC\_COMBO1, 0x403, 2, 0
0x0033 
END