[C++] combobox vraagje.

Pagina: 1
Acties:

  • hutmannetje
  • Registratie: April 2001
  • Laatst online: 28-08 15:10
Ik zit met visual c++ bezig. het is een win32 applicatie
Ik heb een combobox gemaakt met keuzes erin.
Nu wil ik weten hoe je nu kunt zorgen dat als je bijvoorbeeld keuze 2 selecteert dat dan een bepaalde actie gebeurt.
Ik heb nu de volgende code, maar dat werkt niet helemaal:

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
switch(message)
    {
    case WM_INITDIALOG:
SendDlgItemMessage (HWND, combobox,CB_ADDSTRING, 255,(LPARAM)"1");
SendDlgItemMessage(HWND, combobox, CB_ADDSTRING, 255,(LPARAM)"2");
SendDlgItemMessage(HWND, combobox, CB_ADDSTRING, 255,(LPARAM)"3");
return TRUE;
    case WM_COMMAND:
        switch(LOWORD(wParam))
        {
        case IDOK:
    if(SendDlgItemMessage(HWND,combobox, CB_GETCURSEL,0,0  )) 
            {
                actie1();
            }
    if(SendDlgItemMessage(HWND,combobox, CB_GETCURSEL,0,0  )) 
            {   
                actie2();
            }
            
    if(SendDlgItemMessage(HWND,combobox, CB_GETCURSEL,0,0  ))
            {
                actie3();   
            }


Wie kan mij uitleggen wat ik hier fout heb gedaan, of wat verbetert moet worden??

  • whoami
  • Registratie: December 2000
  • Laatst online: 19:34
Wat werkt er dan niet?
Wat gebeurt er? Wat gebeurt er niet?
Heb je het al eens gedebugged? Waar loopt het mis, etc....

Beetje meer info graag. ;)

https://fgheysels.github.io/


  • MisterData
  • Registratie: September 2001
  • Laatst online: 26-08 21:52
hutmannetje schreef op 24 oktober 2002 @ 19:24:
Ik zitben met visual c++ bezig. het is een win32 applicatie
Ik heb een combobox gemaakt met keuzes erin.
Nu wil ik weten hoe je nu kunt zorgen dat als je bijvoorbeeld keuze 2 selecteert dat dan een bepaalde actie gebeurt.
Ik heb nu de volgende code, maar dat werkt niet helemaal:

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
switch(message)
    {
    case WM_INITDIALOG:
SendDlgItemMessage (HWND, combobox,CB_ADDSTRING, 255,(LPARAM)"1");
SendDlgItemMessage(HWND, combobox, CB_ADDSTRING, 255,(LPARAM)"2");
SendDlgItemMessage(HWND, combobox, CB_ADDSTRING, 255,(LPARAM)"3");
return TRUE;
    case WM_COMMAND:
        switch(LOWORD(wParam))
        {
        case IDOK:
    if(SendDlgItemMessage(HWND,combobox, CB_GETCURSEL,0,0  )==0) 
            {
                actie1();
            }
    if(SendDlgItemMessage(HWND,combobox, CB_GETCURSEL,0,0  )==1) 
            {   
                actie2();
            }
            
    if(SendDlgItemMessage(HWND,combobox, CB_GETCURSEL,0,0  )==2)
            {
                actie3();   
            }


Wie kan mij uitleggen wat ik hier fout heb gedaan, of wat verbetert moet worden??
Als je nou es ==1 ==0 en ==2 achter die SendMessage's zet :?

  • hutmannetje
  • Registratie: April 2001
  • Laatst online: 28-08 15:10
ik krijg die dingen wel in me combobox te zien, maar hoe kan ik bij zon message nou een bepaalde actie zetten.
Ik zal het proberen van die ==1 enzo.

  • hutmannetje
  • Registratie: April 2001
  • Laatst online: 28-08 15:10
trouwens bedankt, het werkt.

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

madwizard

Missionary to the word of ska

C++:
1
2
3
4
 case WM_COMMAND:
        switch(LOWORD(wParam))
        {
        case IDOK:

Je moet wel de HIWORD(wParam) controleren op de juiste notification message. Nu worden je acties uitgevoerd bij elke willekeurige notification via WM_COMMAND naar het control met id IDOK. Trouwens IDOK ziet er uit als een knop, wil je dat de acties gestart worden als je op een knop drukt of als je de combobox selectie verandert? Bij een button moet je HIWORD(wParam) controleren op BN_CLICKED en voor een verandering van de combobox selectie op CBN_SELCHANGE.

www.madwizard.org

Pagina: 1