Avatar billede svinth Nybegynder
10. februar 2000 - 11:58 Der er 10 kommentarer og
3 løsninger

MVC++6 && Listbox

Jeg har i et MFC projekt lavet en listbox. Hvordan lægger jeg noget i denne listbox, skal der tilknyttes en variabel først, eller hvad? Da jeg forsøgte det, kunne man kun vælge CString, jeg havde regnet med noget i retning af en (delphi)TStringList. Men jeg kan IKKE finde noget i MSDN om det.
Så...hvordan add'er og aflæser man en listbox?

Svante
Avatar billede privaten Nybegynder
10. februar 2000 - 12:26 #1

Du skal bruge:

AddColumn() til kolonner, fx.

AddColumn("Navn",60,LVCFMT_RIGHT);

og

AddItem() til at lægge data i.


Avatar billede svinth Nybegynder
10. februar 2000 - 12:29 #2
Kan du uddybe lidt? Hvilken variabel skal eksempelvis bruges?
ListBox->AddColumn() eller hvad?
Og hvordan knyttes denne variabel til listboxen?

Svante
Avatar billede privaten Nybegynder
10. februar 2000 - 12:32 #3
Det var også noget vrøvl, undskyld...

// pointer to my list box.
extern CListBox* pmyListBox;

// Add 10 items to the list box.
CString str;
for (int i=0;i < 10;i++)
{
  str.Format(_T("item string %d"), i);
  pmyListBox->AddString( str );
}

Avatar billede svinth Nybegynder
10. februar 2000 - 12:47 #4
Hvor skaffer jeg den pointer fra? Det eneste jeg kender er listboxens ID, der jo som standard er: IDC_LIST1.

Svante
Avatar billede privaten Nybegynder
10. februar 2000 - 14:06 #5

Det behøver ikke at være en pointer, du kan bare tildele listboxen en variabel i classwizarden og anvende den, på samme måde som du gjorde med m_command
Avatar billede svinth Nybegynder
10. februar 2000 - 14:23 #6
Det giver ikke mening? Har du et eksempel?

Svante
Avatar billede soepro Nybegynder
10. februar 2000 - 15:09 #7
Mon så ikke variablen IDC_LIST1 er af typen CListBox*, og du dermed blot skal skrive:

IDC_LIST1->AddString( str );

Jeg bruger selv C++ Builder (Inprise) og der er dette -i princippet- syntaksen.
Avatar billede chris18 Nybegynder
10. februar 2000 - 19:37 #8
Efter du har lavet dine columns, indsætter du bare nogle items, startende fra 0:

m_list.InsertItem(0,streng); 

1 item svarer til en række

Hvis du har mere end en column gør du bare følgende for at tilføje din teks til den tilsvarende column:

m_list.SetItemText(0,nr_på_column,streng);

   
Avatar billede chris18 Nybegynder
10. februar 2000 - 19:40 #9
m_list er en member variabel som du knytter til din listbox (gøres i classwizard), variablen skal være af typen CListCtrl.

Avatar billede svinth Nybegynder
11. februar 2000 - 08:22 #10
Listbox'en er placeret. CListBox Controllen en er tilknyttet. Kan jeg få et fuldt eksempel på hvordan man så gør?
Skal man først oprette en coloumn? Hvordan?
Hvordan indsættes elementer?

Jeg prøvede jeres forskellige eksempler, hvorefter programmet gik ned.
Hvis jeg kan få et eksempel der indsætter en linie i listboxen(med alt dette indebærer), foreløbig har jeg, som ovenfor beskrevet, fået lavet listboxen og tilknyttet en member variabel control (m_listbox).

Svante
Avatar billede jinxed Nybegynder
11. februar 2000 - 09:32 #11

Sæt følgene kode ind i InitDialog eller OnCreate

m_list.AddString("Streng1");
m_list.AddString("Streng2");
m_list.AddString("Streng3");
m_list.AddString("Streng4");

Prøv så at kompile

For at se CListBox's øvrige medlemmer, kig i MSDN (F1) under CListBox og vælg class members

Jinxed ; )
Avatar billede svinth Nybegynder
14. februar 2000 - 11:12 #12
Jeg prøvede at indsætte

m_list.AddString("Streng1");
m_list.AddString("Streng2");
m_list.AddString("Streng3");
m_list.AddString("Streng4");

i InitDialog. Kompileringen gik fint, men der kom ingen strenge.
Så prøvede jeg i OnCreate (som jeg gik ud fra var det sted man kommer hen når man dobbeltklikker på 'formen'). Her fik jeg en kompilerfejl, så jeg prøvede også i:

CSyncTestApp::CSyncTestApp()

, som er app'ens navn. Her får jeg m_listbox undeclared identifier.
Så hvad nu?

Svante
Avatar billede svinth Nybegynder
14. februar 2000 - 12:55 #13
m_list.AddString("Streng") virkede dog i den egentlige kode!
Pointene er fordelt efter nytteværdien af jeres udsagn.

Svante
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester