Avatar billede tycho Nybegynder
26. april 2003 - 21:37 Der er 9 kommentarer

ListBox spørgsmål....

Dav.
Jeg skal har lavet en listbox i en dialog, i mit program. og jeg vil gerne vide hvordan jeg evt. kan læse og indsætte værdier.
På forhånd tak.
Avatar billede bertelbrander Novice
27. april 2003 - 00:07 #1
Det ville være rart hvis du skrev hvilken Kompiler du bruger. Hvis du bruger Visual C++ og MFC bør du kikke efter CListBox::AddString ellers bør du kikke efter LB_ADDSTRING.
For at få fat i din listbox kan du bruge GetDlgItem()

/b
Avatar billede tycho Nybegynder
27. april 2003 - 00:12 #2
Jeg bruger Visual C++, og jeg er igang med en win32 application.
Skal LB_ADDSTRING så bruges i forbindelse med SetDlgItem()?
Avatar billede bertelbrander Novice
27. april 2003 - 00:35 #3
Nej, LB_ADDSTRING er en windows message, og skal ikke bruges som en dialog item ID i et kald til GetDlgItem eller SetDlgItem().
Din dialog box har sikkert en OnInitDialog(), hvis ikke så lav en.
I denne funktion kan du så skrive noget i retning af:
CListBox *lb = (CListBox *)GetDlgItem(MY_LIST_BOX);
ASSERT(LB);
lb->AddString("tycho was here");
Hvor MY_LIST_BOX er ID'en på din listbox.

/b
Avatar billede tycho Nybegynder
27. april 2003 - 01:58 #4
Men fungere det i en almindelig win32app?
Jeg har prøvet at gøre som du sagde, men jeg får en masse fejl (jeg kan heller ikke finde en header der tillader det).
Avatar billede bertelbrander Novice
27. april 2003 - 20:55 #5
Undskyld, jeg gik ud fra at du brugte MFC.
Så kan du bruge noget i retning af:

HWND list_handle = GetDlgItem(hDlg, MY_LIST_BOX);
if(list_handle)
  PostMessage(list_handle, LB_ADDSTRING, 0, "tycho was here");
else
  something_is_wrong();

hDlg er handlen på din dialog
Avatar billede tycho Nybegynder
28. april 2003 - 15:28 #6
Tak for koden.
Men nu er mit problem at PostMessage forventer Long som 4 parameter (teksten kan ikke bruges).
Findes der en funktion der tillader det?
Avatar billede bertelbrander Novice
28. april 2003 - 20:23 #7
Jeg var lidt for hurtig, det bør være:

SendMessage(list_handle, LB_ADDSTRING, 0, (LPARAM )"tycho was here");

DVS at du skal bruge SendMessage og ikke PostMessage og du skal caste
din streng til LPARAM (som er en Long)
Avatar billede tycho Nybegynder
28. april 2003 - 20:54 #8
Tusind tak, det var lige hvad jeg havde brug for.
(og skriv lige et svar så jeg kan give dig point ;) )
Avatar billede bertelbrander Novice
29. april 2003 - 00:06 #9
Din tak er nok, jeg gider ikke samle points.
/b
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