|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Авг 1, 2003 12:49:16 · Поправил: P2M Screwtape Первое - это subclassing, покажите CreateWindow. Второе - WM_DRAWITEM обычно ловят в оконной процедуре родителя ListView'а. |
|
|
Дата: Авг 1, 2003 12:56:10 · Поправил: Screwtape P2M Извеняюсь кнешно но вы просили показать а не сказать что я делаю)) а что это сабклассинг я знаю... И дравитем я ловил и на форме также ее сабкластировал и на самом элементе... Так для теста)) Но как я понял этот драв итем не относится не всплывает при прорисовке подэлементов Да и нет у меня процедуры создания окна все на диалоге... Вообщем стиль репорт... показ колонок одиночное выделение.. сетка... вот все что там стоит)) Вот я не могу понять что за сообщения 204E постояно приходит к листверу... |
|
|
Дата: Авг 1, 2003 13:02:22 Screwtape Как Вам можно помочь/посоветовать если Вы не показываете ни строчки исходника? что за сообщения 204E Afaik не LVM_xxx. |
|
|
Дата: Авг 1, 2003 13:05:57 Если нет стиля LVS_OWNERDRAWFIXED, то контроль все рисует сам по WM_PAINT и нет никаких WM_DRAWITEM. Если LVS_OWNERDRAWFIXED есть, то для всех items (а не subitems) приходит WM_DRAWITEM. DRAWITEMSTRUCT и не содержит № subitem, а только itemID. Поэтому получить сообщение на отрисовку отдельного subitem'а нельзя - такого не существует. |
|
|
Дата: Авг 1, 2003 13:07:01 P2M Ну так что надо имено показать)) Процедуру обработки нажатия клавиши на элементе? Afaik не LVM_xxx. LVM_FIRST 1000h так что наврлятли |
|
|
Дата: Авг 1, 2003 13:09:28 ZverA Ну контрол же както рисует сабитемы?)) и врятли все ресования тогда в WM_PAINT |
|
|
Дата: Авг 1, 2003 13:10:11 204E - или WM_USER + xxx или зарегистрированное сообщение, в общем это сообщение самой аппликации |
|
|
Дата: Авг 1, 2003 13:14:17 204E - или WM_USER + xxx или зарегистрированное сообщение, в общем это сообщение самой аппликации Как то это очень странно)) |
|
|
Дата: Авг 1, 2003 13:19:42 · Поправил: ZverA врятли все ресования тогда в WM_PAINT Именно все, попавшие в регион отрисовки. Иначе бы пришлось посылать и обрабатывать кучу WM_DRAWITEM, что и делается при стиле LVS_OWNERDRAWFIXED, потому он и медленнее отрисовывается, чем обычный listveiw, который ничем не отличается в смысле отрисовки от любого другого контрола, скажем EDIT. |
|
|
Дата: Авг 1, 2003 13:26:14 Мда... видимо придется закрашивать элементы... Других вариантов точно нет>? |
|
|
Дата: Авг 1, 2003 13:29:44 Screwtape же както рисует сабитемы? Пришел WM_DRAWITEM, получайте rect (LVM_GETSUBITEMRECT) каждого subitem'а и рисуйте. |
|
|
Дата: Авг 1, 2003 13:35:35 P2M Как было сказано выше дравитем приходит только при перерисовке главного итема... |
|
|
Дата: Авг 1, 2003 13:35:55 Другой вариант: в subclassing'e: case WM_PAINT: { CallWindowProc(lpszOrig, hList, WM_PAINT, wp, lp); /* а здесь рисуй, что хочешь */ } return 0; |
|
|
Дата: Авг 1, 2003 13:38:54 ZverA ТАк это и есть этот вариант)) а не другой |
|
|
Дата: Авг 1, 2003 13:46:32 Я тут подумал из паинта скорее всего функция получает состояния ечейки... если закрашен саб интем в фокусе она попробует получить значения итема... только поле того как сама его отрисует... |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.061 |