Avatar billede kamikaze Nybegynder
20. november 2002 - 11:12 Der er 3 kommentarer og
1 løsning

Dobbeltklik på listbox (ren win32 API)

Hej.

jeg har lige glemt hvordan jeg fanger dobbeltklik (venstre museknap) i ren win32 API.

Jeg har en dialog (lavet i resource editoren i MSVC6.0), hvorpå der er en listbox.
Jeg mente så det var i min DialogProc jeg kunne reagere på WM_LBUTTONDBLCLK, men den kommer kun når jeg trykker udenfor listbox'en (på dialogen). Er der nogen der har en kode-stump med et eksempel eller en hurtig forklaring (har lavet det før)???
Avatar billede jackonlinux Nybegynder
20. november 2002 - 12:15 #1
Er det noget i stil med at når man dobbelt-click på et listbox item at man kommer ind i en ny dialog eller noget i den stil f.eks.??
Avatar billede kamikaze Nybegynder
20. november 2002 - 13:11 #2
Nej ikke helt. Når brugeren dobbeltklikker på et listbox-item, skal jeg bruge den streng der er blevet klikket på (altså indexet, se nedenfor)

// OnDblClk()
char szBuffer[1024];
DWORD index = SendDlgItemMessage(hDlg, IDC_LIST1, LB_GETCURSEL, 0, 0);
SendDlgItemMessage(hDlg, IDC_LIST1, LB_GETTEXT, index, (long) &szBuffer);

Mit problem er at jeg ikke har så meget tid - jeg har lavet det engang før, men kan ikke lige finde koden...
Avatar billede mbulow Nybegynder
20. november 2002 - 13:36 #3
I din DialogProc kan du holde øje med WM_COMMAND:

case WM_COMMAND:
    if(reinterpret_cast<HWND>(lParam) == hListBox)
    {
        switch(HIWORD(wParam))
        {
        case LBN_DBLCLK:
            MessageBox(0, TEXT("..."), TEXT("..."), MB_OK);
            return TRUE;
        }
    }
    return FALSE;



Så er det bare lige det med at finde ud af hvilket ListBox-element der blev dobbelklikket på
Avatar billede kamikaze Nybegynder
20. november 2002 - 13:41 #4
Jeps, det var LBN_DBLCLK jeg ledte efter - tak for hjælpen, jeg er lidt tidspresset :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester