|
|
|
OnMeasureItem для ListView
|
|||
|---|---|---|---|
|
#18+
у листбокса есть св-во OwnerDraw и соот-во можно менять размер элемента через OnMeasureItem и рисовать его самому... как можно сделать тоже самое но с ListView? Надо просто сделать много-строчные элементы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2005, 14:06 |
|
||
|
OnMeasureItem для ListView
|
|||
|---|---|---|---|
|
#18+
А почему ты не хочешь листбокс использовать? У listview-a есть только стиль LVS_OWNERDRAWFIXED, но он работает только для report-mode-а. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2005, 16:11 |
|
||
|
OnMeasureItem для ListView
|
|||
|---|---|---|---|
|
#18+
SeraTJА почему ты не хочешь листбокс использовать? У listview-a есть только стиль LVS_OWNERDRAWFIXED, но он работает только для report-mode-а. Собственно мне и нужен только report-mode. И для OWNERDRAWFIXED как я понял можно только рисовать самому (а вот как поменять высоту строки я не нашел - оно вообще возможно? если да, то был бы очень благодарен за пример). ListBox меня не устраивает, потомучто с ним не так удобно работать когда несколько колонок. И еще у него нету заголовков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2005, 16:18 |
|
||
|
OnMeasureItem для ListView
|
|||
|---|---|---|---|
|
#18+
Посмотри в сторону WTL-ного примера: http://www.codeproject.com/wtl/ListView_OwnerDraw.asp Там подмечены хорошие вещи: listview создан со стилем LVS_OWNERDRAWFIXED, а затем, чтобы получить WM_MESUAREITEM специально двигают listview. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2005, 17:19 |
|
||
|
OnMeasureItem для ListView
|
|||
|---|---|---|---|
|
#18+
Спасибо. Хороший пример. Теперь можно надеется что задача решима, осталось только найти как. Но увы есть одна проблема, что мне надо это реализовать на C#. Я проанализировал код как смог. И возникли следующие вопросы. Почему-то WndProc для System.Windows.Forms.ListView не получает сообщения WM_INITDIALOG. А на этом как я понял и основана вся суть – надо переместить контрол до вызова WM_INITDIALOG, чтобы принудительно вызвать сообщение WM_MEASUREITEM. Ниже приведена как раз эта ф-ция, для генерации WM_MEASUREITEM: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Щас эта ф-ция вызывается в OnInitDialog() т.о. до сообщения WM_INITDIALOG. Вопрос в том как это реализовать на C#. PS: Хотя думаю, дальше уже не сюда надо писать, поэтому создам параллельную тему в разделе по шарпу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.07.2005, 18:19 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33169348&tid=2033022]: |
0ms |
get settings: |
10ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
49ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 356ms |

| 0 / 0 |
