[win32/c++] creatie image combobox mislukt

Pagina: 1
Acties:

  • Krooswijk.com
  • Registratie: Mei 2000
  • Laatst online: 17-08-2024
naar aanleiding van dit topic ben een combobox gaan maken met daarin de images, zoals in het topic beschreven.

nu heb ik de code gemaakt en hij geeft ook geen foutmelding, echter de combobox geeft de plaatjes niet weer. hieronder volgt de code:
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
25
26
27
28
29
30
31
32
33
34
35
/**************************************************************************
*   initialize_image_combobox
**************************************************************************/
void initialize_image_combobox( HWND combo_box, HIMAGELIST image_list )
{
    SendMessage( combo_box, CBEM_SETIMAGELIST, 0, (LPARAM)image_list );
    SendMessage( combo_box, CB_SETCURSEL, (WPARAM)0, 0 );
}

/**************************************************************************
*   create_image_combobox
**************************************************************************/
HWND create_image_combobox( int count_items,
            int combo_left, int combo_top,
            int combo_width, int combo_height )
{
    INITCOMMONCONTROLSEX control;
    control.dwSize = sizeof( INITCOMMONCONTROLSEX );
    control.dwICC = ICC_USEREX_CLASSES;
    InitCommonControlsEx( &control );

    return CreateWindowEx(
                    0,
                    WC_COMBOBOXEX,
                    NULL,
                    WS_BORDER | WS_VISIBLE | WS_CHILD | CBS_DROPDOWN,
                    combo_left,                 
                    combo_top,
                    combo_width,                
                    count_items * combo_height,
                    main_window,
                    (HMENU)NULL,
                    current_instance,
                    (LPVOID)NULL );
}


en dan hieronder de aanroepende code

C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    if ( !( combobox_line_weights = create_image_combobox( 4, 220, 30, 80, 15 ) ) )
    {
        return false;
    }

    HIMAGELIST image_list = ImageList_Create( 80, 15, ILC_COLOR24, 3, 0 );

    HBITMAP line_weight_1 = LoadBitmap( current_instance, "PID_BITMAP_LINEWEIGHT_1" );
    ImageList_Add( image_list, line_weight_1, NULL );

    HBITMAP line_weight_2 = LoadBitmap( current_instance, "PID_BITMAP_LINEWEIGHT_2" );
    ImageList_Add( image_list, line_weight_2, NULL );

    HBITMAP line_weight_3 = LoadBitmap( current_instance, "PID_BITMAP_LINEWEIGHT_3" );
    ImageList_Add( image_list, line_weight_3, NULL );

    initialize_image_combobox( combobox_line_weights, image_list );


de bitmaps id's zijn gedeclareerd in de resource files. iemand enig idee waar het fout gaat, of dat ik iets vergeten ben, ik zie het iig echt niet meer...

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

madwizard

Missionary to the word of ska

Hoe voeg je de items toe?
Trouwens normaalgesproken zet je een hele rij icons in 1 bitmap en voeg je die in een keer toe aan een imagelist (imagelist knipt ze dan zelf uit), is wat handiger dan losse bitmaps.

www.madwizard.org


Verwijderd

Moet je niet je common controls niet bij het creeeren van je venster initaliseren? Zo heb je volgens mij toegang tot deze gevallen in heel je proggie. Nu heb je een lokale scope, misschien is het verstandig ze in de globale scope van het proggie te zetten?