Текущий архив: 2005.09.25;
Скачать: CL | DM;
Вниз
WM_ERASEBKGND не понимает возвращаемое значение. Найти похожие ветки
← →
MegaVolt © (2005-08-01 14:49) [0]В ListView ловлю WM_ERASEBKGND обрабатываю его по своему и пытаюсь выставить Result.
procedure TListViewEx.WMERASEBKGND(var Message: TWMEraseBkgnd);
begin
...
Message.Result:=1;
inherited
end;
Что бы я не присваивал всё равно ListView производит стирание после меня :( Как объяснить что я стёр всё сам? Если убрать штрукшеув то вроде всё получается. Но зачем тогда Result? Или я что то не так делаю?
← →
Игорь Шевченко © (2005-08-01 14:56) [1]
> Как объяснить что я стёр всё сам?
Кому объяснить ?
← →
MegaVolt © (2005-08-01 15:00) [2]Компоненту :)
Т.е. судя по справке я в результате высавляю неноль если я сам всё сделал и дальше стирать не нужно и 0 если нужно стирать.
An application should return nonzero if it erases the background; otherwise, it should return zero.
← →
DVM © (2005-08-01 15:36) [3]а зачем inherited?
← →
MegaVolt © (2005-08-01 15:38) [4]А как без него сообщение уйдёт куда то дальше, и тот кто его послал поймёт что я изменил результат?
← →
miek © (2005-08-01 15:41) [5]inherited не нужен!
← →
DVM © (2005-08-01 15:43) [6]
> А как без него сообщение уйдёт куда то дальше, и тот кто
> его послал поймёт что я изменил результат?
бред сивой кобылы
← →
MegaVolt © (2005-08-01 15:44) [7]>бред сивой кобылы
Хорошо как тогда правильно заполнить Result?
← →
Fay © (2005-08-01 15:46) [8]Return Values
An application should return nonzero if it erases the background; otherwise, it should return zero.
← →
MegaVolt © (2005-08-01 15:46) [9]>inherited не нужен!
Тогда заполнение или незаполнение Result не на что не влияет :( Зачем тогда Result?
← →
MegaVolt © (2005-08-01 15:48) [10]Fay сдорово что вы процитировали строчку которую я написал раньше. В ней написано что приложение должно возвращать... Вот я и спрашиваю как это должно возвращать? Что я должен сделать чтобы вернуть нечто????
← →
DVM © (2005-08-01 15:53) [11]
> Хорошо как тогда правильно заполнить Result?
Message.Result:=1; в данном случае, в других читать справку по сообщениям.
> Тогда заполнение или незаполнение Result не на что не влияет
>
Влияет, просто в данном случает ты не видишь этого.
> Что я должен сделать чтобы вернуть нечто????
кому вернуть? Давай сначала в это разберемся ;)
← →
Игорь Шевченко © (2005-08-01 15:57) [12]
> Компоненту :)
А причем тут тогда обработка сообщений Windows, результат которой обработки ты присваиваешь ?
Результат нужен только для обработки сообщения внутри Windows, закрашивать ли окно кистью по умолчанию и к компоненту это совсем не относится
← →
MegaVolt © (2005-08-01 16:02) [13]>Влияет, просто в данном случает ты не видишь этого.
Почему не влияет? В одном случае стирание должен организовывать тот кто послал сообщение (ListView) в другом случае я сам. Если я ничего в обработчике не вставляю то у меня экран оказывается нестёртым и при Result:=0 и при Result=1; Насколько я понимаю если я пишу 0 то стирание должно происходить.
>кому вернуть? Давай сначала в это разберемся ;)
Скорее всего самому ListView. При изменении на экране он посылает сообщение сам себе(?) я его перехватываю и стираю сам. Result предназначен как я понимаю ListView и обозначает что я его уже стёр.
Так?
← →
MegaVolt © (2005-08-01 16:08) [14]>А причем тут тогда обработка сообщений Windows, результат которой обработки ты присваиваешь ?
:( Ну в справке написано должен вот я и выясняю как это сделать... Я был не в курсе что есть одинаковые сообщения которые нужно обрабатывать и ненужно обрабатывать.
>Результат нужен только для обработки сообщения внутри Windows.
Спасибо понял. Т.е. в моём случае результат роли не играет.
А как нужно было бы поступить если бы результат всё же нужен был бы? Просто Result:=... и всё? Или как то сообщение нужно было бы дальше отправить?
← →
Игорь Шевченко © (2005-08-01 16:16) [15]MegaVolt © (01.08.05 16:08) [14]
> А как нужно было бы поступить если бы результат всё же нужен
> был бы? Просто Result:=... и всё? Или как то сообщение нужно
> было бы дальше отправить?
Результат имеет смысл, если он отправляется тому, кто это сообщение послал, то есть, Windows, в момент обработки сообщения WM_PAINT (оно оттуда изнутре вызывается). Хорошим тоном считается присвоение результата в обработчике сообщений окна (в оконной процедуре).
← →
MegaVolt © (2005-08-01 16:19) [16]Огромное спасибо всем кто мне помогал. Стало гораздо понятнее :))
Страницы: 1 вся ветка
Текущий архив: 2005.09.25;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.044 c