Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Пользовательские сообщения [D5]


Страницы:   1 2

KSergey ©   (2005-01-12 09:04:00) 

Люди, подскажите: в каком диаразоне (применительно к VCL) следует выбирать значения для своих сообщений? Для формы?

Я так всегда считал, что начиная с WM_USER и далее, но ведь VCL сама использует сообщения, правда начиная с WM_USER+что-то там.

Так какой диапазон корректен? Или где это в справке?


Alexander Panov   (2005-01-12 13:35:00) [1]

Only use RegisterWindowMessage when more than one application must process the same message. For sending private messages within a window class, an application can use any integer in the range WM_USER through 0x7FFF. (Messages in this range are private to a window class, not to an application. For example, predefined control classes such as BUTTON, EDIT, LISTBOX, and COMBOBOX may use values in this range.)


pasha_golub   (2005-01-12 12:34:00) [2]

KSergey ©   (12.01.05 12:12) [20]
500 - это мистическое число, оно же "Internal Server Error" :)


KSergey   (2005-01-12 12:12:00) [3]

500 - это из жизненного опыта или "чтобы не промахнуться"? ;)

---


Anatoly Podgoretsky   (2005-01-12 12:06:00) [4]

Есть рекомендация, использовать WM_USER + 500


Anatoly Podgoretsky   (2005-01-12 12:05:00) [5]

Alexander Panov ©   (12.01.05 11:41) [16]
Be aware that some standard Windows controls use messages in the user-defined range. These include list boxes, combo boxes, edit boxes, and command buttons.


KSergey   (2005-01-12 11:43:00) [6]

Понял, спасибо

---


Alexander Panov   (2005-01-12 11:41:00) [7]

Ошибся.
WM_USER through 0x7FFF  - не используется VCL


KSergey   (2005-01-12 11:36:00) [8]

> [14] Alexander Panov ©   (12.01.05 11:31)

Лгромное спасибо
Вот только тут выходит, что VCL использует все? ;)

---


Alexander Panov   (2005-01-12 11:31:00) [9]

Range Meaning
0 through WM_USER–1
 Используются системой

WM_USER through 0x7FFF
 Используется для передачи предопределнных сообщений с номерами из этого диапазона окнамвнутри приложения.
(Используется в VCL)

WM_APP through 0xBFFF
 Используется для предачи предопределнных сообщений с номерами из этого диапазона как внутри, так и между приложениями. Не конфликтует с системными сообщениями.
(Используется в VCL)

0xC000 through 0xFFFF
 Используется в Run-Time для определения номеров сообщений  при помощи функции RegisterWindowMessage. Номер сообщения идентифицируется строковой константой.

Greater than 0xFFFF
 Зарезервировано для использования системой в будущем.


KSergey   (2005-01-12 11:05:00) [10]

> [12] Verg ©   (12.01.05 10:23)
> Что значит потеряно?
> Или я неправильно понял вопрос?

Возможно
Я имел в виду вот что
Есть сообщения, посылаемые объектами VCL самим себе (или другим объектам) для (как я понимаю) нормального функциклирования этой самой VCL.
Очевидно, что если я считаю ее функциклирование неправильным - я могу это все порубить или заслать какое-то сообщение, обрабатываемое VCL, со своим злонамеренным умыслом "исправить" его функциклирование.

Но именно этого всего я и не хочу!
Я хочу слать сообщения и обрабатывать их каким мне заблагорассудится способом но так, чтобы это не влиято на работу VCL....

Ну неужели это не понятно??
Так вот в справке по дельфи мне не попалось места с ответом на сей вопрос.

> [11] Alexander Panov ©   (12.01.05 10:18)

Спасибо, хотя, согласитесь, отсылки к MSDN не совсем уместны в том смысле, что ведь я пишу не просто Win приложение, а приложение, использующее VCL, а значит мне необходимо смотреть именно на непротиворечивость по отношению к VCL, если я правильно все понимаю...
Но по приведенным данным таки ест у мея вопрос: признаюсь, мне совершенно не ясен смысл приведенных коментариев. Что это еще за Integer и String messages??
А к кокой части относится VCL: "applications" или "private window classes"? Судя по значению констант - к "applications", а не "private window classes", хотя это и спранно на мой вкус...

---


Verg   (2005-01-12 10:23:00) [11]

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/messagesandmessagequeues/messagesandmessagequeuesreference/messagesandmessagequeuesmessages/wm_user.asp


> [8] KSergey ©   (12.01.05 09:53)
> Но оно будет потеряно для VCL! Не страшно?


Что значит потеряно?

При наследовании перекрытые (override) виртуальные методы теряются?
В рамках данного класса X, если в перекрытом методе нет вызова inherited можно сказать, что и теряются. Теряются для данного класса X и только для X, а не для любого класса с тем же предком, что и у X.

Или я неправильно понял вопрос?


Alexander Panov   (2005-01-12 10:18:00) [12]

KSergey ©   (12.01.05 10:06) [10]

CM_BASE абсолютно ни при чем.

Диапазон сообщений определен в MSDN:

Range Meaning
0 through WM_USER–1 Messages reserved for use by the system.
WM_USER through 0x7FFF Integer messages for use by private window classes.
WM_APP through 0xBFFF Messages available for use by applications.
0xC000 through 0xFFFF String messages for use by applications.
Greater than 0xFFFF Reserved by the system for future use.

т.е. для пользовательских сообщений отведен диапазон от
WM_USER(0x0400) до WM_APP-1(0x7FFF)


KSergey   (2005-01-12 10:06:00) [13]

> [9] Kerk ©   (12.01.05 09:57)
> ну так думать головой надо о последствиях..

Екарный бабай... Так  а я о чем??! Вопрос изначальный перечитайте.


Kerk   (2005-01-12 09:57:00) [14]

KSergey ©   (12.01.05 9:53) [8]
Но оно будет потеряно для VCL! Не страшно?

ну так думать головой надо о последствиях.. может специально его "потерять" надо


KSergey   (2005-01-12 09:53:00) [15]

> [6] Kerk ©   (12.01.05 09:47)
> если обработаешь его сам - ничего страшного, вроде
>
>  [7] Семен Сорокин ©   (12.01.05 09:49)
> ага и inherited специально для этого поставлю :)

Но оно будет потеряно для VCL! Не страшно?


Семен Сорокин   (2005-01-12 09:49:00) [16]


> KSergey ©   (12.01.05 09:33) [5]
> Не пугает? А ну как запендюрю сообщение, на которое есть
> реакция в VCL?

ага и inherited специально для этого поставлю :)


Kerk   (2005-01-12 09:47:00) [17]

KSergey ©   (12.01.05 9:33) [5]
если обработаешь его сам - ничего страшного, вроде


KSergey   (2005-01-12 09:33:00) [18]

> [3] GanibalLector ©   (12.01.05 09:26)
> А какая разница?Первый параметр sendmessage вообще-то хендл.

...формы.

Не пугает? А ну как запендюрю сообщение, на которое есть реакция в VCL?


KSergey   (2005-01-12 09:32:00) [19]

> до WM_USER - служебные

до WM_USER включительно??? Чей-то сомнения меня разбирают.

> и т.д. :)

Ага, а на CM_BASE и далее напороться не страшно?

А вообще пожалуй так оно:

[WM_USER..CM_BASE-1] включительно

Если не прав - поправьте, плиз...


GanibalLector   (2005-01-12 09:26:00) [20]

А какая разница?Первый параметр sendmessage вообще-то хендл.Так что...


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо