Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

BlackSnake

Community-Fossil

  • »BlackSnake« ist der Autor dieses Themas

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

1

03.06.2007, 18:49

Mehrere Einträge in einer ComboBox

nabend alle zusammen,
ich habe folgendes problem:
ich habe eine combobox, wenn ich jetzt aber eintrage hinzufügen möchte

C-/C++-Quelltext

1
2
3
4
SendDlgItemMessage(_dlg, BE_RENDERERLIST, CB_ADDSTRING, NULL,
(LPARAM)(L"DirectX9.dll"));
SendDlgItemMessage(_dlg, BE_RENDERERLIST, CB_ADDSTRING, NULL,
(LPARAM)(L"DirectX8.dll"));


kann ich immer nur den zu letzt eingetragenden auswählen.

weiß evtl. jemand, woran das liegen könnte?

2

03.06.2007, 19:06

Zitat

SendDlgItemMessage(_dlg, BE_RENDERERLIST, CB_ADDSTRING, NULL,
(LPARAM)(L"DirectX9.dll"));


Was soll das denn?
Der 4. Parameter gibt an das wie vielte item das ist. Du fügst jedes mal ein Item an der Stelle 0 hinzu also an der ersten Stelle und überschreibst es immer wieder.
Machs so:

C-/C++-Quelltext

1
2
int counter = 0;
...


C-/C++-Quelltext

1
2
3
SendDlgItemMessage(_dlg, BE_RENDERERLIST, CB_ADDSTRING, counter,
(LPARAM)(L"DirectX9.dll")); 
counter++;


Und nicht vergessen den Counter jedes mal wenn du ein Item hinzufügst mit 1 zu addieren!
Das Böse ist des Menschensbeste Kraft - Friedrich Nietzsche

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

3

03.06.2007, 19:21

Zitat von »"Theprogrammer"«

Zitat

SendDlgItemMessage(_dlg, BE_RENDERERLIST, CB_ADDSTRING, NULL,
(LPARAM)(L"DirectX9.dll"));


Was soll das denn?
Der 4. Parameter gibt an das wie vielte item das ist.


falsch, der 4te parameter wird nicht benutzt.

ich glaube mich erinnern zu können, dass es da so eine sache mit der höhe der combobox gab...
zeig mal wie du die box erstellst (vermutlich mit dem dialog editor. dann wären die flags interessant)

4

03.06.2007, 21:24

oh sorry hab nicht aufgepasst aber wenn du einfach nur einen String hinzufügen willst dann gehts so:


C-/C++-Quelltext

1
2
SendMessageW (object,CB_ADDSTRING,counter, reinterpret_cast<LPARAM>(text.c_str()));
counter++


dann stimmt das auch mit dem counter (ist allerdings der 3. Parameter)
Das Böse ist des Menschensbeste Kraft - Friedrich Nietzsche

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

03.06.2007, 21:27

nein, laut msdn muss wparam bei CB_ADDSTRING 0 sein (alles andere wär imo auch etwas unlogisch...). also stimmt sein code da oben schon.

6

04.06.2007, 13:54

seltsam bei mir rennt das so problemlos und wenn ich NULL angebe gehts auch nicht!
Das Böse ist des Menschensbeste Kraft - Friedrich Nietzsche

BlackSnake

Community-Fossil

  • »BlackSnake« ist der Autor dieses Themas

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

7

04.06.2007, 14:10

dann werde ich das auch mal testen, wie TheProgrammer es beschrieben hat.

BlackSnake

Community-Fossil

  • »BlackSnake« ist der Autor dieses Themas

Beiträge: 1 549

Beruf: Student

  • Private Nachricht senden

8

04.06.2007, 15:01

also das mit dem counter funzt auch nicht :(

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

9

04.06.2007, 15:06

Zitat von »"BlackSnake"«

also das mit dem counter funzt auch nicht :(


Klar geht das nicht. Ist ja auch falsch! ;-)
@D13_Dreinig

Werbeanzeige