Форум: "Прочее";
Текущий архив: 2008.11.16;
Скачать: [xml.tar.bz2];
ВнизWM_USER +100 vs WM_USER +400 Найти похожие ветки
← →
Германн © (2008-09-17 03:56) [0]Не ну. А всё таки какие идентификаторы сообщений стоит пользовать в программах? И когда и почему?
← →
Городской Шаман (2008-09-17 04:46) [1]Использовать стоит получаемые с помощью RegisterWindowMessage.
← →
KilkennyCat © (2008-09-17 04:54) [2]
> И когда
Когда необходимо
> и почему?
Потому что необходимо
:)
← →
antonn © (2008-09-17 08:57) [3]
> Германн © (17.09.08 03:56)
>
> Не ну. А всё таки какие идентификаторы сообщений стоит пользовать
> в программах? И когда и почему?
"нужно написать программу" (с)
PS извините :)
← →
Игорь Шевченко © (2008-09-17 09:07) [4]
> А всё таки какие идентификаторы сообщений стоит пользовать
> в программах? И когда и почему?
А без разницы, лишь бы не пересекаться с другими желающими.
← →
Григорьев Антон © (2008-09-17 09:08) [5]http://www.delphikingdom.com/asp/viewitem.asp?catalogid=169#08
Только там не написано про +100 и +400. Я уже видел здесь упоминания о том, что это теперь надо обязательно добавлять к WM_USER, но подтверждения в доках пока не нашёл. Если кто-то ткнёт носом в ссылку, буду весьма признателен.
← →
Поросенок Винни-Пух © (2008-09-17 09:17) [6]я меньше тысячи не использую
← →
clickmaker © (2008-09-17 11:07) [7]WM_USER - 0x7FFF для своих оконных классов
WM_APP - 0xBFFF для приложений
← →
jack128_ (2008-09-17 11:21) [8]
> что это теперь надо обязательно добавлять к WM_USER, но
> подтверждения в доках пока не нашёл. Если кто-то ткнёт носом
> в ссылку, буду весьма признателен.
ссылку не дам, но где то читал, что сообщения из диапазона WM_USER..WM_USER + 100 используются какими то стандартными классами из comctrls.dll
← →
Григорьев Антон © (2008-09-17 11:37) [9]
> jack128_ (17.09.08 11:21) [8]
> ссылку не дам, но где то читал, что сообщения из диапазона
> WM_USER..WM_USER + 100 используются какими то стандартными
> классами из comctrls.dll
Ну, используются, ну и что? И за пределами этого диапазона тоже используются, причём не только comctrls.dll, но и стандартными оконными классами. Например, EN_HSCROLL=WM_USER+$201, EN_VSCROL=WM_USER+$202. Просто диапазон WM_USER..WM_APP зарезервирован для классовых сообщений, программист, который делает такое сообщение, обязан следить за тем, чтобы оно посылалось только окнам того класса, для которого предназначено. В этом случае абсолютная уникальность номеров сообщений не требуется, два разных сообщения, предназначенных для разных оконных классов, вполне могут иметь одинаковый номер. Всё это в MSDN хорошо описано.
← →
jack128_ (2008-09-17 13:29) [10]const
WM_MYMSG = WM_USER + 1;
TMyListView = class(TListView)
private
procedure WMMyMsg(var Message: TMessage); message WM_MYMSG; // возможны проблемы
end;
понятно, что тут програмимст сам себе злобный буратина, но проще всегда писать WM_USER + 100 (или + 400) и не забивать себе голову такими вещами
← →
Германн © (2008-09-17 14:43) [11]
> Просто диапазон WM_USER..WM_APP зарезервирован для классовых
> сообщений, программист, который делает такое сообщение,
> обязан следить за тем, чтобы оно посылалось только окнам
> того класса, для которого предназначено.
Ага. Спасибо Антон.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2008.11.16;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.005 c