[MFC] Combobox blijft leeg *

Pagina: 1
Acties:

  • chrisO
  • Registratie: Mei 2003
  • Laatst online: 21-08 10:06
Zit dus met het probleem dat ik geen items (CString's) aan m'n CCombobox kan toevoegen...als ik m'n programma run staan de items er dus niet in, de combobox blijft leeg. ik heb al op het forum gezocht, diverse boeken geraadpleegd maar geen van allen bied een oplossing

ik heb een dialog frame aangemaakt hierin een ccombobox geplaatst en met behulp van ClassWizzard een member variable van catagory Control en variabletupe CCombobox toegevoegd. vervolgens gaan de boeken die ik geraadpleegd heb direct items (CString objecten) toevoegen m.b.v. AddString() als ik dat doe dan krijg ik dus een assertion error, dus maak ik gebruik van CCombobox::Create() als volgt:
myCombo.Create(CBS_SORT, rect, AfxGetMainWnd(), IDC_MYCOMBO);
nu zou het dus volgens mij moeten werken als ik AddString() gebruik maar dit doet het dus niet...wat doe ik mis of wat vegeet ik?

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 21-08 18:33
Het idee is om een combobox op je dialoog te zetten in de resource editor, en dan mbv een reference naar die combobox de string toe te voegen.

vb
C++:
1
2
3
4
5
6
UrDialog::InitDialog( )
{
    CComboBox * b = ( CComboBox * ) GetDialogItem( IDC_UR_COMBOBOX );

    b->AddString( "Blaat" );
}


NB, vergeet niet om het dropdown gedeelte van de combobox in te stellen.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

En maar weer eens de titel gewijzigd zodat ie aan de P&W policy voldoet... :z

Professionele website nodig?


  • chrisO
  • Registratie: Mei 2003
  • Laatst online: 21-08 10:06
Helaas farlane, als ik dat doe dan blijft m'n dropdown combobox lijstje nog steeds leeg... : :|

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 21-08 18:33
chrisO schreef op 12 August 2003 @ 11:21:
Helaas farlane, als ik dat doe dan blijft m'n dropdown combobox lijstje nog steeds leeg... : :|
[selfquote]
NB, vergeet niet om het dropdown gedeelte van de combobox in te stellen.
[/selfquote]

Klik op het dropdown pijltje van je combobox en sleep de selectie naar beneden zodat er ook daadwerkelijk een lijst te zien is als je 'em runt.

( De code die ik gaf werkt als een tiet. )

[edit]

Om te testen wat er in de lijst staat zou je deze code kunnen gebruiken:

C++:
1
2
3
4
5
6
7
8
9
10
11
    CComboBox * b = ( CComboBox * ) GetDlgItem( IDC_UR_COMBOBOX );

    b->AddString( "Blaat" );
    
    for( int i = 0; i < b->GetCount(); ++ i)
    {
        char * buffer = new char[ b->GetLBTextLen( i ) + 1 ];
        b->GetLBText( i, buffer );
        TRACE( "%s\n", buffer );
        delete [] buffer;
    }


De string "Blaat" moet nu in je output window verschijnen. ( Aangenomen dat je met VS werkt )

[ Voor 34% gewijzigd door farlane op 12-08-2003 13:58 ]

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • chrisO
  • Registratie: Mei 2003
  • Laatst online: 21-08 10:06
Bedankt voor je hulp Farlane ....uhmmm ...durf het bijna niet te zeggen maar ik had dus de code in m'n functie geplaatst in plaats van in InitDialog waar het thuis hoort.
nu werkt het dus :)

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 21-08 18:33
En die functie niet aanroepen zeker ?

Hehe .... dat soort leuke dingen blijf je houden :)

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.

Pagina: 1