Listbox Problem



  • Ich versuche das Beispiel in Assembler umzusetzen:

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/listboxes/usinglistboxes.asp

    mir bereitet HIWORD bei LBN_SELCHANGE etwas Kopfzerbrechen. Irgendwie will meine Listbox nicht so richtig.

    mfg A-lex



  • es wäre nett wenn du angibst was für assembler (MASM,Nasm,TASM,FASM).
    Ansonsten: ich setze meistens die Auswahl eher ander rum:
    Bis jetz habe ich die Listbox immer benutzt damit der User bestimmte Sachen auswählen und per doppelklick starten kann:

    .ELSEIF iMsg==WM_COMMAND        
            mov eax,wParam
    		mov edx,eax
    		shr edx,16     
    
            .if dx ==LBN_DBLCLK
                        invoke PlaySong,hWnd
    
    ...............
    
    ;Auszug aus der PlaySong
    
                       	invoke SendDlgItemMessage, hWnd, ID_LIST_BOX, LB_GETCURSEL, 0, 0
                       	.IF eax!=LB_ERR
    
                            invoke SendDlgItemMessage, hWnd, ID_LIST_BOX, LB_GETTEXT, eax, addr SongName
    

    bei deinem Problem:
    was genau klappt denn nicht?
    Ansonsten ist im MS-Beispiel das Loword (also IDL_SOFTBALL) nur die ID der Listbox (falls man also nur eine hat, kann man auf die Abfrage auch verzichten 😉 ) und das hiword kommt hier von wPARAM (also gehört zur WM_COMMAND => und das ist bei WM_COMMAND der Notification Code (es wird also abgefragt ob hier eine LBN_SELCHANGE aufgetreten ist). Um festzustellen welches Item angeklickt wurde muss man trotzdem LB_GETCURSEL bemühen .



  • Danke! Mir hat dieser Teil gefehlt.

    mov eax,wParam
    mov edx,eax
    shr edx,16     
    
    .if dx == LBN_SELCHANGE
    

    CDW schrieb:

    es wäre nett wenn du angibst was für assembler (MASM,Nasm,TASM,FASM).

    MASM. Ist jetzt aber eigentlich egal, oder?

    mfG A-lex


Anmelden zum Antworten