Расширенные стили LIstView... больше нет сил ...

Тема в разделе "WASM.BEGINNERS", создана пользователем DrSex, 2 май 2007.

  1. DrSex

    DrSex Юрий

    Публикаций:
    0
    Регистрация:
    1 апр 2005
    Сообщения:
    98
    Адрес:
    Россия
    Народ, помогите, плиз. Есть прога с ListView. Хочется установить расширеные стили. Нипример, LVS_EX_FULLROWSELECT. Делаю так:
    Код (Text):
    1. HWND hListView = GetDlgItem(hDlg,IDC_LV);
    2. SetWindowLong(hListView,GWL_EXSTYLE,GetWindowLong(hListView,GWL_EXSTYLE) | LVS_EX_FULLROWSELECT);
    но толку никакого. Смотрел на версию ComCtl32.dll - сначала там грузились 2 (!) версии: 5.82 и 6.0. с помощью манифестов, вроде, добился загрузки только одной - 6.0. хз в MSDN написано, что этот флаг должен поддерживаться еще с версии 4.7.
    Пишу на VC++ в VS2005. Приложение Win32 API. Без ATL.

    В чем грабли?? детский сад, вроде?? Может я чего не так с манифестами делаю?
     
  2. Guest

    Guest Guest

    Публикаций:
    0
    Открывай ручками файл ресурсов и добавляй расширенный стиль, у меня на той же студии проканало =)
     
  3. Guest

    Guest Guest

    Публикаций:
    0
    Вот еще, выдрал из собственного кода ListView_SetExtendedListViewStyleEx(hTaskList, 0, LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT | LVS_EX_HEADERDRAGDROP | LVS_EX_FLATSB);
     
  4. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    DrSex
    Цитата msdn. Extended List-View Styles: "LVS_EX_FULLROWSELECT
    Version 4.70. When an item is selected, the item and all its subitems are highlighted. This style is available only in conjunction with the LVS_REPORT style."

    Добавлял стиль про помощи msdn. LVM_SETEXTENDEDLISTVIEWSTYLE
    Код (Text):
    1. SendMessage(hwndLV,
    2.   (UINT) LVM_SETEXTENDEDLISTVIEWSTYLE,
    3.   (WPARAM) LVS_EX_FULLROWSELECT,
    4.   (LPARAM) LVS_EX_FULLROWSELECT);
     
  5. Alexander77

    Alexander77 Alexander

    Публикаций:
    0
    Регистрация:
    1 авг 2006
    Сообщения:
    28
    Адрес:
    Ukraine, Kiev
    У меня так вот работает (masm):
    Код (Text):
    1. invoke  SendMessage,hListView1,LVM_SETEXTENDEDLISTVIEWSTYLE,0,\
    2.             LVS_EX_FULLROWSELECT or LVS_EX_GRIDLINES or \
    3.             LVS_EX_HEADERDRAGDROP or LVS_EX_TWOCLICKACTIVATE
    при том, что стиль стоит WS_CHILD or WS_VISIBLE or LVS_REPORT
     
  6. DrSex

    DrSex Юрий

    Публикаций:
    0
    Регистрация:
    1 апр 2005
    Сообщения:
    98
    Адрес:
    Россия
    ессно LVS_REPORT установлен.
    понял. всем псибо. щас попробую.
     
  7. DrSex

    DrSex Юрий

    Публикаций:
    0
    Регистрация:
    1 апр 2005
    Сообщения:
    98
    Адрес:
    Россия
    Рулит! 8) ;)
     
  8. DrSex

    DrSex Юрий

    Публикаций:
    0
    Регистрация:
    1 апр 2005
    Сообщения:
    98
    Адрес:
    Россия
    А как избавиться от 2-х копий comctl32.dll??
    все-таки обе версии грузятся ...
     
  9. korvin72

    korvin72 New Member

    Публикаций:
    0
    Регистрация:
    11 июл 2011
    Сообщения:
    1
    ListView-то отображается.
    У меня другой вопрос- по поводу заголовков
    Как сделать так чтобы он изначально выглядел как в проводнике виндовс и
    при наведении указателя мыши на заголовок менял свой цвет
     
  10. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    манифест прицепил?
     
  11. Igneele

    Igneele New Member

    Публикаций:
    0
    Регистрация:
    28 янв 2008
    Сообщения:
    17
    У меня тоже есть вопрос. Устанавливаю я плоский стиль для полос прокрутки (LVS_EX_FLATSB) и для самого ListView'a (WS_EX_STATICEDGE), а как сделать заголовки колонок тоже плоскими (естественно для LVS_REPORT)?
     
  12. q_q

    q_q New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2003
    Сообщения:
    1.706
    Цитата msdn. Header Control Styles:
    HDS_FLAT
    Version 6.0. Causes the header control to be drawn flat when Windows XP is running in classic mode.
    Note Comctl32.dll version 6 is not redistributable but it is included in Windows XP or later. To use Comctl32.dll version 6, specify it in a manifest. For more information on manifests, see Enabling Visual Styles.
     
  13. Igneele

    Igneele New Member

    Публикаций:
    0
    Регистрация:
    28 янв 2008
    Сообщения:
    17
    Это получается, чтобы использовать HDS_FLAT надо подключать ComCtl32.dll 6-ой версии через манифест?