Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
xp/vista style; common controls 5/6; regsvr32 на x86/x64
|
|||
|---|---|---|---|
|
#18+
AntonariyС высотой ничего в голову не приходит. Да бог с ним. Уже подретушировал-извратился. Вставил один Toolbar в другой. Внешний 420 и обеспечивает "полоску" между меню и Toolbar. Внутренний 435 (т.к. 17х17 ) и его Top чуть смещен вниз, т.е. кнопки получились как бы посредине высоты внешнего Toolbar и низ скрыт. Получилось думаю нормально. Счас занимаюсь самым мерзким Listview, ломаю голову над другим Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Вопрос конечно в LVSIL_GROUPHEADER . Не хочет ImageList-ы назначать-никакие. По крайней мере использовать не получается. Если сравнивать с Toolbar (полный код приведен выше), то там используется некая фишка: Код: plaintext 1. 2. Код: plaintext Т.е. в Control-5 он тупо использует ImageListListView для header-ов, если назначить два первых ImageList через VB, а если их не назначать и пытаться применять LVM_SETIMAGELIST (при неназначенных ImageList) то картинок нет нигде. И еще странность, но пока не копал. У меня ширины столбцов для ListView считываются из реестра. Если запомнить их при закрытии приложения кот. Control-6 а потом открыть в Control-5 то столбцы сильно шире, и походу при тех же значениях Width. Ощущение что использует другие координаты. Можно конечно подкоректировать default-ы, но мне тогда придется удалять ветвь реестра где эти ширины хранятся при инсталляции новой версии, а не хотелось бы. А если не удалить то будет похабство при первом запуске, и user должен будет уменьшать их вручную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2010, 14:13 |
|
||
|
xp/vista style; common controls 5/6; regsvr32 на x86/x64
|
|||
|---|---|---|---|
|
#18+
Насчет LVSIL_GROUPHEADER. Заголовки столбцов это отдельный контрол: Код: plaintext 1. 2. Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2010, 14:49 |
|
||
|
xp/vista style; common controls 5/6; regsvr32 на x86/x64
|
|||
|---|---|---|---|
|
#18+
Antonariy, пытаюсь по вашему методу: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. Не хочет...Ощущение что пытаюсь забить тот же гвоздь, но другим кувалдометром. MsgBox pvHeaderhWnd показывает вроде похожие на правду Long-и, а HDM_SETIMAGELIST видимо не срабатывает, т.к. функция, что дальше, лепит картинку из основного ImageList, а не из желаемого. Вашу SendMessage Long я конечно вижу, ну попытался еще вот так вот Код: plaintext 1. 2. 3. 4. Вообще-то... >лепит картинку из основного ImageList М-м-м...то что лепит это уже неплохо... а не проще ли забить и добавить 3 лишние картинки в основной ImageList, жалко что ли... Пусть оттуда их и берет. Что думаете? ================================== AntonariyавторУ меня ширины столбцов для ListView считываются из реестра. Если запомнить их при закрытии приложения кот. Control-6 а потом открыть в Control-5 то столбцы сильно шире, и походу при тех же значениях Width. Ощущение что использует другие координаты. Тоже на это натыкался, но не понял, в чем засада. Просто сделал кнопку, устанавливающую размеры по умолчанию, если расползутся. Происходит это редко. Дык расползутся они только один раз - при установке новой версии с "5" после старой версии с "6". (если user уже устанавливал программу ранее) Деинсталлятор старой версии не удаляет эти параметры из реестра. Единственный способ удалить при установке новой версии. Они по разному интерпретируют одну и ту же ширину . Для "5" дефолты придется тупо уменьшить методом теста. Или они еще "в процессе" могут глючить? Если так, то не радует... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2010, 15:58 |
|
||
|
xp/vista style; common controls 5/6; regsvr32 на x86/x64
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Вообще-то... >лепит картинку из основного ImageList М-м-м...то что лепит это уже неплохо... а не проще ли забить и добавить 3 лишние картинки в основной ImageList, жалко что ли... Пусть оттуда их и берет. Что думаете? Это дурной вариант..У меня размерность картинки другая: в основном листе 16х16, а в заголовках 12х12, можно конечно добавить поля по 2 с каждой стороны, но это съест место, опять эстетика пострадает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2010, 16:23 |
|
||
|
xp/vista style; common controls 5/6; regsvr32 на x86/x64
|
|||
|---|---|---|---|
|
#18+
Все, разобрался Вот это не работало Код: plaintext Теперь воюю с прозрачным цветом иконок в Listview-Header. В Control-6 они будучи загнанными в ImageList изначально (иконки с прозрачными местами) были по умолчанию прозрачными. Здесь: Код: plaintext 1. 2. 3. Пытался уже битмапы в ресурсы загонять, например делаю фон синим и типа Код: plaintext 1. 2. 3. 4. 5. Не могу понять сути этой MaskColor. Что делать-то? Лучше конечно с обычными ico, кот. загружены в Picturebox-ы с бесцветным фоном и обычным ImageList, там тоже этот MaskColor есть, но помогает только Backcolor, да и то не до конца, как выяснили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2010, 04:05 |
|
||
|
xp/vista style; common controls 5/6; regsvr32 на x86/x64
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Не могу понять сути этой MaskColor. Что делать-то?Суть в том, что imagelist самостоятельно делает прозрачными области указанного цвета. Такие области называются маской. Свойство ImageLis'а MaskColor задает этот цвет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2010, 10:32 |
|
||
|
xp/vista style; common controls 5/6; regsvr32 на x86/x64
|
|||
|---|---|---|---|
|
#18+
Antonariy, для самого ListView это работает, а для header оно лепит цвет фона, в чем и проблема. Тестовый пример P.S. А файлы как нормально тут прилеплять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2010, 17:55 |
|
||
|
xp/vista style; common controls 5/6; regsvr32 на x86/x64
|
|||
|---|---|---|---|
|
#18+
Не знаю чего с этой прозрачностью делать. По идее можно попытаться менять цвет фона ImageList, видимо читая цвет какого-то пикселя, как это придумал с TabStrip. Но здесь куча сложностей: 1) Выделяется только один header, а фон един для всех картинок. 2) Надо будет эти картинки каждый раз перерисовывать-обновлять 3) Надо думать как считать текущий цвет каждого header 4) Надо еще понимать событие при кот. столбец меняет цвет. понятно сабклассинг этих хидеров (у меня это headres кажется и так сабклассятся, но от этого не легче). 5) а если там в xp гребаные градиенты используются как в TabStrip то вообще ж., фиг отследишь где чего и почему меняется. Сдается мне, путь сей не есть правильный и как то проще делается. Для кнопки напр. этот MaskColor надо задавать и он должен совпадать с MaskColor для ImageList. А с header я нигде никакого намека на это не вижу(автоматически здесь не работает). Но с 6-ми контролами вроде по default-у они прозрачные получаются (в смысле плюют на цвет фона), значит в API чего-то должно быть. --------------------------------- А по поводу ширины столбцов. Не, там хуже. ColumnHeaders(i).width надо выкидывать в помойку сразу и не думая. Простые тесты показывают, что если 1-100; 2-200 ; 3-300 то ширина устанавливается не линейно, а по какой-то логарифмической шкале, и мало того что дикая нелинейность, если эти значения пытаться запоминать, то эта мерзость фиг их потом еще и отобразит также (т.е. реальные ширины будут в след. раз другие). Но здесь хотя бы выход наклевывается. Что-нибудь типа: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.04.2010, 04:08 |
|
||
|
xp/vista style; common controls 5/6; regsvr32 на x86/x64
|
|||
|---|---|---|---|
|
#18+
Дмитрий77для самого ListView это работает, а для header оно лепит цвет фона, в чем и проблема. Получилось. Чего только не пытался. Уже вот это накопал Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. 3. 4. 5. 6. http://btmtz.mvps.org/listview/ http://btmtz.mvps.org/listview/lvheadersorticons.zip Вернее все-таки понимание(или так фишка легла) что здесь VB ImageList не прокатит: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Кстати вопрос. Как уже упомянул, >Вашу SendMessageLong я конечно вижу Так вот в тестовом(мелком) примере у меня строчка (без Long) Код: plaintext ----------------------- На Висте в некоторых программах (но далеко не всех) примеры: Почта Виндоус, Fax and Scan listview имеет какой-то другой вид, т.е. не только шапка по-вистовски, но и сами Items в Report выглядят по-вистовски, т.е. с закругленными выделениями-примечаниями и с голубой прозрачной подсветкой. Это как сделать? Или это вообще принципиально другой контрол? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2010, 04:32 |
|
||
|
xp/vista style; common controls 5/6; regsvr32 на x86/x64
|
|||
|---|---|---|---|
|
#18+
AntonariyавторУ меня ширины столбцов для ListView считываются из реестра. Если запомнить их при закрытии приложения кот. Control-6 а потом открыть в Control-5 то столбцы сильно шире, и походу при тех же значениях Width. Ощущение что использует другие координаты. Тоже на это натыкался, но не понял, в чем засада. Просто сделал кнопку, устанавливающую размеры по умолчанию, если расползутся. Происходит это редко. Собственно, давно уже до этого сам допер. Но если интересно, официальное заключение: FIX: Problem with ListView's ColumnHeader Width Property How To Set the Column Width of Columns in a ListView Control Принялся пока курочить другой свой exe-шник. Новая проблема: Код: plaintext 1. 2. 3. Изучаю пока вот это чудо: http://btmtz.mvps.org/listview/ LVCustomDraw: How to use custom draw in the ListView http://btmtz.mvps.org/listview/lvcustomdraw.zip Неужели только сабклассить и NMLVCUSTOMDRAW ? Или можно че попроще придумать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2010, 03:06 |
|
||
|
xp/vista style; common controls 5/6; regsvr32 на x86/x64
|
|||
|---|---|---|---|
|
#18+
Дмитрий77Новая проблема: Код: plaintext 1. 2. 3. Осилил: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. В моем случае ListView был вставлен в PictureBox, а PictureBox был вставлен во Frame, а Frame вставлен в Form. Чтобы добраться до этой "иголки", пришлось сабклассить PictureBox, этого оказалось достаточно. Таблицу цветов строчек храню в их Tag-ах, т.е. достаточно Item.tag=vbBlue Listview1.Refresh =============================== но Refresh на 5-х контролах свинит, т.е.даже не рефреш, а попытка изменить Item/SubItem кот. Selected но вне зоны видимости программно. Т.е. у вас ListView напр. отображает строка=500, а selected строка=2 и программа меняет вам эту строку=2.(через vb-модель) Дык вот свинья в том, что этот гад перепрыгнет на вторую строчку. Если скажем у вас содержание ListView обновляется по таймеру(отдельные строки), то вы будете тянуть HScroll вниз, а эта скотина будет тянуть вас вверх. Посему пришлось накатать еще ряд ф-ций, плюс быстро понял, что если с SubItems/Image начинаешь работать через API, то это можно даже без лишних сабклассингов, но VB-модель надо хоронить с момента первого применения API, ибо двояко(через API и через VB) можно прочитать разве что Item.Text , попытки двойного обращения будут вести к бардаку в голове и программе. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. ================================ Хотелось бы тут вспомнить про Toolbar. AntonariyДмитрий77Хотелось бы каких-то идей-направлений (хотя бы).NM_CUSTOMDRAW Antonary, ну допустим влезу я во все это (первый опыт типа есть) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. И допустим я вымучаю все и вся и что-то сделаю. А всякие NM_<VISTA>DRAW или NM<XP>DRAW пошлют мой NMCUSTOMDRAW куда подальше. Простой пример для классики то есть, я ссылку давал, но XP/Vista стили действие того примера обнуляют, здесь небось тоже самое будет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2010, 04:18 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=36585967&tid=2159846]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
115ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 333ms |
| total: | 526ms |

| 0 / 0 |
