Combobox in Toolbar auslesen



  • Hallo, ich habe folgende Problem:

    In einer Toolbar (hwndToolbar) hab ich zwei Comboboxen und ein Button.
    Mit dem Button rufe ich eine Funktion auf (klappt soweit)(den Aufruf meine ich) die den Inhalt der Comboboxen auslesen soll. Nur geht das nicht.

    Hier der Casezweig der Aufgerufen wird.

    case ID_BEITRAG:
    GetWindowText(hwndEdit2, szBuff, 255);
    GetWindowText(hwndEdit3, szBuff1, 255);                         
    MessageBox(hwnd,szBuff,szBuff1,0);
    return 0;
    

    habs auch schon mit GetWindowText(GetDlgItem (hwndToolbar, ID_ART), szBuff, 255); probiert, geht auch nicht.

    Danke für eure Hilfe

    Sönke



  • Dei Combobox ist mit Elementen, Items, gefüllt. Diese musst du einzeln auslesen.



  • und dann nimm lieber GetDlgItemText

    GetDlgItemText(hwnd,COMBOX(die ID),text(wo gespeichert werden soll),sizeof(text));
    

    so mache ich es immer und klappt eigentlich acuh



  • erstmal danke für die schnelle antwort, leider funktioniert das auch nicht. ich poste mal die ganze Nachrichtenschleife und wie ich den toolbar erstelle

    LRESULT CALLBACK WndProcBeitrag (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam){
    
    std::string titel;
    char szBuff[255], szBuff1[255];
    HWND hwndToolbar, MemberBeitragC, hwndEdit1, hwndEdit2, hwndEdit3;
    
        switch (message)                  /* handle the messages */
        {
    
            case WM_CREATE:
                 titel  = "Beitrag - ";
                 titel += szAppName;
                 SetWindowText(hwnd,titel.c_str());
                 hwndToolbar = tb_create( inst, hwnd, 0 );
    
                            hwndEdit1   = CreateWindow ( "button", "Anzeigen",                       	//Nächster
                                          WS_CHILD | WS_VISIBLE, 
                                          3,1,90,25, hwndToolbar, (HMENU)ID_BEITRAG, 
                                          inst, NULL);   
    
                            hwndEdit2 = CreateWindow(TEXT("Combobox"), 
                                       NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | LBS_STANDARD, 
                                       100,1,100,20,
                                       hwndToolbar, (HMENU)ID_JAHR, 
                                       inst,
                                       NULL);
                            SendMessage(hwndEdit2, CB_ADDSTRING, 0, (LPARAM)"Jahr");
                            SendMessage(hwndEdit2, CB_ADDSTRING, 0, (LPARAM)"");                        
                            SendMessage(hwndEdit2, CB_ADDSTRING, 0, (LPARAM)"2002");
                            SendMessage(hwndEdit2, CB_ADDSTRING, 0, (LPARAM)"2003");
                            SendMessage(hwndEdit2, CB_SETCURSEL, 0, 0);
    
                            hwndEdit3 = CreateWindow(TEXT("Combobox"), 
                                       NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | LBS_STANDARD | CBS_DROPDOWNLIST, 
                                       210,1,200,20,
                                       hwndToolbar, (HMENU)ID_ART, 
                                       inst,
                                       NULL);
    
                            SendMessage(hwndEdit3, CB_ADDSTRING, 0, (LPARAM)"Anzeigeart");
                            SendMessage(hwndEdit3, CB_ADDSTRING, 0, (LPARAM)"");                                     
                            SendMessage(hwndEdit3, CB_ADDSTRING, 0, (LPARAM)"Alle Mitglieder");
                            SendMessage(hwndEdit3, CB_ADDSTRING, 0, (LPARAM)"Säumiege Mitglieder");                                                            
                            SendMessage(hwndEdit3, CB_SETCURSEL, 0, 0);                        
    
                            MemberBeitragC = CreateWindow(
                                   "BeitragC",
                                   NULL, // kein Titel
                                   WS_CHILD | WS_VISIBLE | WS_EX_CLIENTEDGE | CBS_DROPDOWNLIST |
                                   WS_BORDER,// | WS_OVERLAPPEDWINDOW, // Fenster Style
                                   0,30,595,420, // Position des Fensters innerhalb des Hauptfenster (wird bei size gesetzt)
                                   hwnd, // Handle des Hauptfensters
                                   NULL, // kein HMENU
                                   inst, // HINSTANCE des Hauptfensters
                                   NULL
                                   );
    
            return 0;   
            case WM_COMMAND:
                 switch(wParam){
                        case ID_FILE_EXIT:  
                         	   DestroyWindow(hwnd);					                //Wenn im Menü Beenden gewählt Beenden
                        return 0;
                        case ID_BEITRAG:
                             //GetWindowText(hwndEdit2, szBuff, 255);
                             //GetWindowText(hwndEdit3, szBuff1, 255);     
                             //GetWindowText(GetDlgItem (hwndToolbar, ID_ART), szBuff, 255);                       
                             GetDlgItemText(hwnd,ID_ART,szBuff,sizeof(szBuff)); 
                             MessageBox(hwnd,szBuff,szBuff1,0);
                        return 0;	         
                                }
    
                 return 0;                
            }
    

    und die funktion zum toolbarerstellen

    HWND tb_create( HINSTANCE instance, HWND hwnd, int style ) 
    { 
        InitCommonControls(); 
    
        //Create window for toolbar, parent is current window 
        HWND hwnd_toolbar = CreateWindowEx(  0, 
                                        TOOLBARCLASSNAME, 
                                        (LPSTR) NULL, 
                                        WS_CHILD | WS_VISIBLE | style, 
                                        0, 0, 0, 0, 
                                        hwnd, 
                                        (HMENU) 1, 
                                        instance, 
                                        NULL 
                                    ); 
        if (!hwnd)      //Continue if creating toolbar was successfull 
        { 
            return NULL; 
        } 
    
        //Add Standard-Buttons to toolbar's Image-List 
        TBADDBITMAP bitid; 
        bitid.hInst = HINST_COMMCTRL; 
        bitid.nID = IDB_STD_SMALL_COLOR; 
        SendMessage(hwnd_toolbar, TB_ADDBITMAP, 1, (long)&bitid); 
    
        SendMessage(hwnd_toolbar, TB_BUTTONSTRUCTSIZE, (WPARAM) sizeof(TBBUTTON), 0);       //Backward compatiblity 
        ShowWindow(hwnd_toolbar, SW_SHOW);                                                  //Show Toolbar! 
        return hwnd_toolbar; 
    }
    


  • Sorry hab meinen Fehler gefunden, mann muss die HWNDs auf static setzen

    danke aber trozdem für die Hilfe

    guten rutsch


Anmelden zum Antworten