-
Не ну. А всё таки какие идентификаторы сообщений стоит пользовать в программах? И когда и почему?
-
Использовать стоит получаемые с помощью RegisterWindowMessage.
-
> И когда
Когда необходимо
> и почему?
Потому что необходимо :)
-
> Германн © (17.09.08 03:56) > > Не ну. А всё таки какие идентификаторы сообщений стоит пользовать > в программах? И когда и почему?
"нужно написать программу" (с)
PS извините :)
-
> А всё таки какие идентификаторы сообщений стоит пользовать > в программах? И когда и почему?
А без разницы, лишь бы не пересекаться с другими желающими.
-
-
я меньше тысячи не использую
-
WM_USER - 0x7FFF для своих оконных классов WM_APP - 0xBFFF для приложений
-
> что это теперь надо обязательно добавлять к WM_USER, но > подтверждения в доках пока не нашёл. Если кто-то ткнёт носом > в ссылку, буду весьма признателен.
ссылку не дам, но где то читал, что сообщения из диапазона WM_USER..WM_USER + 100 используются какими то стандартными классами из comctrls.dll
-
> 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 хорошо описано.
-
const WM_MYMSG = WM_USER + 1; TMyListView = class(TListView) private procedure WMMyMsg(var Message: TMessage); message WM_MYMSG; // возможны проблемы end;
понятно, что тут програмимст сам себе злобный буратина, но проще всегда писать WM_USER + 100 (или + 400) и не забивать себе голову такими вещами
-
> Просто диапазон WM_USER..WM_APP зарезервирован для классовых > сообщений, программист, который делает такое сообщение, > обязан следить за тем, чтобы оно посылалось только окнам > того класса, для которого предназначено.
Ага. Спасибо Антон.
|