![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| ButtonOFF |
|
|||
|
улетевший ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 16.11.2009 Репутация: нет Всего: нет |
Всем привет!
Мучает меня один вопрос, как устроен механизм Закрытия и Убивание окна? Сам я думаю что отправляется сообщение моему окну, но кто? Могу я сам их обрабатывать без применения форм, например в безформеном приложении? Если можно, то подскажите как. Это сообщение отредактировал(а) ButtonOFF - 26.11.2009, 17:34 |
|||
|
||||
| ButtonOFF |
|
|||
|
улетевший ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 16.11.2009 Репутация: нет Всего: нет |
Вот нашел, пойду разбиратся
MSDN -> Windows -> Window Features -> Message-Only Windows : "A message-only window enables you to send and receive messages. It is not visible, has no z-order, cannot be enumerated, and does not receive broadcast messages. The window simply dispatches messages. To create a message-only window, specify the HWND_MESSAGE constant or a handle to an existing message-only window in the hWndParent parameter of the CreateWindowEx function. You can also change an existing window to a message-only window by specifying HWND_MESSAGE in the hWndNewParent parameter of the SetParent function. To find message-only windows, specify HWND_MESSAGE in the hwndParent parameter of the FindWindowEx function. In addition, FindWindowEx searches message-only windows as well as top-level windows if both the hwndParent and hwndChildAfter parameters are NULL." |
|||
|
||||
| ButtonOFF |
|
|||
|
улетевший ![]() Профиль Группа: Участник Сообщений: 55 Регистрация: 16.11.2009 Репутация: нет Всего: нет |
Пробую так создать окно
но почему то компилятор говорит на HWND_MESSAGE - "Constant expression violates subrange bounds" This error message occurs when the compiler can determine that a constant is outside the legal range. This can occur for instance if you assign a constant to a variable of subrange type. Т.е что, делфи не разрешает создавать такие окна ? Создаю в D7. Народ попробуйте у себя создать. UPDATE Ептеть как все запущенно, в общем вместо HWND_MESSAGE нужно HWND(HWND_MESSAGE). Какой раз убеждаюсь что делфи наикривейший компилятор, но учится на нем проще чем на других. Это сообщение отредактировал(а) ButtonOFF - 26.11.2009, 19:54 |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Ну почему? Смотрим исходники (в D7): 1. параметр CreateWindowEx.hWndParent имеет тип HWND = LongWord, т.е. беззнаковое. 2. константа HWND_MESSAGE = -3, то есть отрицательное число, которое "не вписывается" в LongWord, т.к. LongWord предполагает только положительные числа. Замечание компилятора в этом контексте вполне логично, как и необходимость приведения знаковой константы к беззнаковому целому. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |