Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];

Вниз

Пользовательские сообщения   Найти похожие ветки 

 
KSergey ©   (2005-01-12 09:04) [0]

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

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

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


 
S@shka ©   (2005-01-12 09:05) [1]

WM_USER + 1
и т.д. :)
до WM_USER - служебные


 
S@shka ©   (2005-01-12 09:06) [2]

справку по WinAPI можно посмотреть


 
GanibalLector ©   (2005-01-12 09:26) [3]

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


 
KSergey ©   (2005-01-12 09:32) [4]

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

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

> и т.д. :)

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

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

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

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


 
KSergey ©   (2005-01-12 09:33) [5]

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

...формы.

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


 
Kerk ©   (2005-01-12 09:47) [6]

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


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


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

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


 
KSergey ©   (2005-01-12 09:53) [8]

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

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


 
Kerk ©   (2005-01-12 09:57) [9]

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

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


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

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

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


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

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)


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

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


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


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

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

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


 
KSergey ©   (2005-01-12 11:05) [13]

> [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", хотя это и спранно на мой вкус...

---


 
Alexander Panov ©   (2005-01-12 11:31) [14]

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:36) [15]

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

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

---


 
Alexander Panov ©   (2005-01-12 11:41) [16]

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


 
KSergey ©   (2005-01-12 11:43) [17]

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

---


 
Anatoly Podgoretsky ©   (2005-01-12 12:05) [18]

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.


 
Anatoly Podgoretsky ©   (2005-01-12 12:06) [19]

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


 
KSergey ©   (2005-01-12 12:12) [20]

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

---


 
pasha_golub ©   (2005-01-12 12:34) [21]

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


 
Alexander Panov ©   (2005-01-12 13:35) [22]

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.)



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.01.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.035 c
1-1105542768
race1
2005-01-12 18:12
2005.01.23
свойства


11-1086458896
DillerXX
2004-06-05 22:08
2005.01.23
Почему в конечном файле не работает хот кей?


14-1104657410
Чеширский_Кот
2005-01-02 12:16
2005.01.23
Вопрос на засыпку: сколько э/энергии потребляет комп?


4-1102158229
aleman
2004-12-04 14:03
2005.01.23
Отлов без хук


1-1104998124
Кодер
2005-01-06 10:55
2005.01.23
Курсор в RichEdit





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский