Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: [c] WIN32 listbox

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698

    [c] WIN32 listbox

    Non riesco a capire una cosa sulle listbox.

    Praticamente (uso visualc++) se creo un progetto vuoto, un dialogo vuoto, e ci metto dentro una listbox, mandando in esecuzione il programma questo esce immediatamente.

    Non ho capito se devo in qualche modo inizializzare la listbox oppure se è un controllo MFC che va usato per forza in un ambiente c++

  2. #2
    Prima di visualizzare il Dialog chiama la API InitCommonControls (o la InitCommonControlsEx).
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    Grazie, ora sembra funzionare

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    Adesso ho un altro problema -.-

    codice:
    SendDlgItemMessage(hwnd, IDC_EVENT_LIST, LB_ADDSTRING, 0,(LPARAM)"stringa");
    Questa chiamata mi restituisce con GetLastError

    1421 - "Impossibile trovare l'ID di controllo"

    Sto sbroccando, perchè il controllo ESISTE, dal momento che viene visualizzato, sia a livello di resource che a livello di header.

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Originariamente inviato da Gil Mour
    ... il controllo ESISTE ...
    Ed ha questo ID

    IDC_EVENT_LIST

    ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Prova ad effettuare una ricompilazione completa: VC++ non marca coma "da ricompilare" i file che includono resource.h anche se questo viene modificato, quindi, se anche hai modificato il valore di IDC_EVENT_LIST in resource.h, il programma continua a riferirsi al vecchio ID.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    anche io credo che sia un problema relativo a visual studio

    solo che ho ricompilato il resource e fatto un rebuild all varie volte e non cambia niente

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    Allora, penso di iniziare a capirci qualcosa

    codice:
    IDD_MAIN DIALOG DISCARDABLE  0, 0, 245, 225
    STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
    FONT 8, "MS Sans Serif"
    BEGIN
        DEFPUSHBUTTON   "START",IDC_START,19,193,50,14
        EDITTEXT        IDC_LBL_STATE,109,29,104,12,ES_READONLY
        GROUPBOX        "Device",IDC_STATE_BOX,19,15,211,62
        LTEXT           "State",IDC_STATIC,25,29,77,12
        LTEXT           "Port",IDC_STATIC,25,53,77,12
        EDITTEXT        IDC_LBL_PORT,109,53,105,12,ES_READONLY
        EDITTEXT        IDC_EVENT,23,90,199,22,ES_AUTOHSCROLL | ES_READONLY
        GROUPBOX        "Diagnostic",IDC_STATIC,19,77,211,62
        DEFPUSHBUTTON   "STOP",IDC_STOP,73,193,50,14
        CONTROL         "List1",IDC_LIST1,"SysListView32",LVS_LIST | WS_DISABLED | 
                        WS_BORDER | WS_TABSTOP,19,145,210,48
    END
    Questo è il codice del resource generato da vc++.
    Praticamente dichiara la listbox come 'control'. Ho provato a sostituire l'ultimo elemento con una dichiarazione di listbox più 'consona'

    codice:
    LISTBOX         IDC_LIST1,10,5,105,60,NOT LBS_NOTIFY | LBS_NOSEL | WS_VSCROLL | WS_HSCROLL | WS_TABSTOP
    E adesso funziona.
    Mica mi dispiacerebbe capire che cavolo combina visualstudio

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Beh ... ma accanto a CONTROL leggo che la classe e' "SysListView32" e quindi non hai creato una ListBox ma una ListView ... quindi bisognerebbe capire anche cosa combini tu ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    698
    Io combino questo

    Prendo una listbox dalla toolbar di visual studio e la metto dentro un dialog.
    Poi il codice lo genera lui.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.