Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[MFC, C++] CListCtrl - przełączenie do trybu wirtualnego

Ostatnio zmodyfikowano 2013-07-21 02:16
Autor Wiadomość
DejaVu
Temat założony przez niniejszego użytkownika
[MFC, C++] CListCtrl - przełączenie do trybu wirtualnego
» 2013-07-21 02:16:17
Aby przełączyć CListCtrl do trybu wirtualnego należy:
  • Ustawić styl LVS_OWNERDATA dla kontrolki CListCtrl (jeżeli kontrolka jest ładowana przy pomocy DDX_Control to koniecznym jest, aby styl został nadany w pliku resource *.rc).
  • Ustawić liczbę elementów za pomocą metody SetItemCountEx:
    C/C++
    m_ctrlListaRekordow.SetItemCountEx( 1024 );
    Jeżeli styl LVS_OWNERDATA nie będzie ustawiony prawidłowo dla kontrolki, to zajdzie ASSERT, a wywołanie omawianej linijki nie spowoduje żadnych zmian.
  • Przechwycić notyfikację:
    C/C++
    IMPLEMENT_DYNCREATE( CVirtualListCtrl, CListCtrl )

    BEGIN_MESSAGE_MAP( CVirtualListCtrl, CListCtrl )
    ON_NOTIFY_REFLECT( LVN_GETDISPINFO, OdczytajWirtualnyWiersz )
    END_MESSAGE_MAP()

    afx_msg void CVirtualListCtrl::OdczytajWirtualnyWiersz( NMHDR * pNMHDR, LRESULT * pResult )
    {
        LV_DISPINFO * pDispInfo = reinterpret_cast < LV_DISPINFO *>( pNMHDR );
        LV_ITEM & wiersz = pDispInfo->item;
        if( wiersz.mask & LVIF_TEXT )
        {
            switch( wiersz.iSubItem )
            {
            case 0:
                lstrcpy( wiersz.pszText, "abc" );
                break;
                default:
                lstrcpy( wiersz.pszText, "domyślna wartość" );
                break;
            }
        }
        * pResult = 0;
    }

Powiązane informacje:
[MFC, C++] Własna kontrolka na CFormView
[MFC, C++] Zmiana stylu kontrolki przechwyconej za pomocą DDX_Control
P-88472
« 1 »
  Strona 1 z 1