ListView Select Event



  • Hi,

    irgendwie komme ich mit der ListView nicht zurecht, evtl kann mir jemand von euch sagen wo mein eEhler liegt.

    1. Problem:
    Ich habe einen Dialog wo eine ListView enthalten ist sowie zwei buttons.
    Wenn ich in der Listview ein Item selektiert habe und dann auf einen Button klicke vird die Selektierung zurück gesetzt, sprich nichts ist mehr selektiert!
    Ist das eine Eigenschaft der ListView?

    Darauf hin wollte ich das Selektionsereigniss abfangen und nach meinen Wünschen umbasteln nur bekomme ichs nicht so richtig hin.

    2. Problem
    Ich lande einfach nicht im E
    Ich bekomme einfach den LVN_ITEMACTIVATE case nicht.
    Ist der falsch eingebaut?

    BOOL APIENTRY DeviceSelectProc(HWND hDlg, UINT msg, UINT wp, LONG lp)
    {
        case WM_COMMAND:
        //...
    
        case WM_NOTIFY:
        {
            HWND hwndFrom = ((LPNMHDR) lp)->hwndFrom;
            UINT nIdFrom = ((LPNMHDR) lp)->idFrom;
            UINT nCode = ((LPNMHDR) lp)->code;
    
            switch (nIdFrom)
            {
                case IDC_LIST_ACCESSIBLE_DEVICES:
                {
                    switch (nCode)
                    {
                        DEBUGMSG(TRUE, (TEXT("Code: %u\r\n"), nCode ) );
                        case LVN_ITEMACTIVATE:
                        {
                            int n = ListView_GetSelectionMark(hwndListView);
                            DEBUGMSG(TRUE, (TEXT("Selected Item: %d\r\n"), n ) );
                        }
                    }
                }
            }
    }
    

    Grüße
    Sascha


  • Mod

    zu 1) Hast Du LVS_SHOWSELALWAYS gesetzt ?



  • Nein,
    ich werds gleich mal testen danke!
    Falls es klappt hätte sich Problem 2 auch erledigt.
    Aber wissen warum ich den Event nicht bekomme würde ich trotzdem gern!

    Gruß
    Sascha



  • Hab grad noch folgendes extended style gefunden "LVS_EX_ONECLICKACTIVATE"

    Auszug msdn:
    Sends an LVN_ITEMACTIVATE notification message to the parent window when the user clicks an item. This style also enables hot tracking in the list-view control. Hot tracking means that when the cursor moves over an item, it is highlighted but not selected. If the LVS_EX_ONECLICKACTIVATE style is set, only one click is required to select any item, so all items may be selected.

    Könnte das zweite prob erklären!

    Sascha


Anmelden zum Antworten