Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1223535504
TNT
2008-10-09 10:58
2008.11.16
Определение и отмена горячих клавиш


15-1221421673
kaif
2008-09-14 23:47
2008.11.16
Uriah Heep Sympathy


2-1223438151
AdMeen
2008-10-08 07:55
2008.11.16
"Обратное дерево"


8-1187552645
leonidus
2007-08-19 23:44
2008.11.16
OCR & Delphi


2-1223370793
Gurd
2008-10-07 13:13
2008.11.16
kaCtrls





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский