[C++] On-the-fly combobox maken?

Pagina: 1
Acties:

  • Daro
  • Registratie: April 2003
  • Laatst online: 09-01 14:42
Ik probeer in C++ on-the-fly een combobox in mijn dialoogvenster toe te voegen.
Ik doe dat met deze code:

code:
1
2
3
4
5
HINSTANCE hInstanceCombobox;
hInstanceCombobox = GetModuleHandle(NULL);
HWND hwndSelectConnection = CreateWindow( TEXT("combobox"), "IDC_NIVEAU1", WS_CHILD | WS_VISIBLE | WS_BORDER | CBS_DROPDOWNLIST, 200, 100, 300, 0, hwnd, NULL, hInstanceCombobox, NULL );
index = SendDlgItemMessage(hwnd, IDC_NIVEAU1, CB_ADDSTRING, 0, (LPARAM)temp);
SendDlgItemMessage(hwnd, IDC_NIVEAU1, CB_SETITEMDATA, (WPARAM)index, (LPARAM)2);


De combobox verschijnt wel, maar ik krijg hem niet open:'(
Hier zijn al andere topics over geweest maar die snap ik niet 8)7
Weet iemand wat er fout aan is?

Daro

[ Voor 3% gewijzigd door Daro op 15-05-2003 20:53 . Reden: toevoeging ]


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Het is ook geen geldige PHP code 8)7

})

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • Daro
  • Registratie: April 2003
  • Laatst online: 09-01 14:42
Ow, sorry=>edit het is C++

[ Voor 37% gewijzigd door Daro op 15-05-2003 21:06 ]


  • madwizard
  • Registratie: Juli 2002
  • Laatst online: 26-10-2024

madwizard

Missionary to the word of ska

Misschien een height > 0 opgeven? IIRC bepaalt de hoogte van een combobox de hoogte van het drop down ding.

www.madwizard.org


  • Daro
  • Registratie: April 2003
  • Laatst online: 09-01 14:42
THX, dat is het!

Maar dan zit ik nog met een ander probleem, is er een manier om die combobox aan te spreken via SendDlgItemMessage() i.p.v. SendMessage()? Anders zal de rest van de code nog niet meewerken.

[ Voor 86% gewijzigd door Daro op 15-05-2003 21:31 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

even de docs lezen!
Using SendDlgItemMessage is identical to retrieving a handle to the specified control and calling the SendMessage function.
ja dus :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Daro
  • Registratie: April 2003
  • Laatst online: 09-01 14:42
Wat bedoel je hiermee?
Meestal geef ik zo info aan een combobox:

SendDlgItemMessage(hwnd, IDC_NIVEAU1, CB_ADDSTRING, 0, (LPARAM)temp);

Maar hier heet het item IDC_NIVEAU1, hoe kan ik zorgen dat het nieuwe,(zelfgemaakte) item ook zo'n naam heeft?


P.S. Sorry dat het zo lang duurde voordat ik antwoord.

Verwijderd

Ik zit nu op school, dus ik kan mijn antwoord niet testen. Maar ik denk zelf dat het het ID nummer is wat je window meekrijgt. Je moet dus een waarde bij de createwindow veranderen.
C++:
1
2
3
4
5
6
7
8
9
10
11
12
HWND CreateWindow(          LPCTSTR lpClassName,
    LPCTSTR lpWindowName,
    DWORD dwStyle,
    int x,
    int y,
    int nWidth,
    int nHeight,
    HWND hWndParent,
    HMENU hMenu, //Hier heb je nu toch NULL staan? dit herander je dus in (HMENU)getal
    HINSTANCE hInstance,
    LPVOID lpParam
);


De hMenu waarde moet je dus veranderen. Ik weet het niet 100% zeker, maar misschien heb je er wat aan.

  • Daro
  • Registratie: April 2003
  • Laatst online: 09-01 14:42
Het werkt niet, wat redelijk logisch is, omdat je nu eenmaal geen char kunt omzetten naar een een menu struct...

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

Als je nou eens de moeite neemt om de documentatie door te lezen!

Uit de CreateWindow docs:
hMenu
[in] Handle to a menu, or specifies a child-window identifier depending on the window style. For an overlapped or pop-up window, hMenu identifies the menu to be used with the window; it can be NULL if the class menu is to be used. For a child window, hMenu specifies the child-window identifier, an integer value used by a dialog box control to notify its parent about events. The application determines the child-window identifier; it must be unique for all child windows with the same parent window.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Daro
  • Registratie: April 2003
  • Laatst online: 09-01 14:42
Bedankt!!
Ik gaf een char waarde in en geen int-waarde(of constante).

  • Daro
  • Registratie: April 2003
  • Laatst online: 09-01 14:42
Maar waarom krijg ik dan deze error te zien?

c:\documents and settings\david\mijn documenten\c++\c++ projecten\rekenoefeningen\beheer.h(250) : error C2664: 'CreateWindowExA' : cannot convert parameter 10 from 'const int' to 'struct HMENU__ *'
Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast
Pagina: 1