![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
ДенисБелов |
|
|||
![]() Подмастерье Профиль Группа: Участник Сообщений: 14 Регистрация: 12.9.2006 Где: Россия, Киров Репутация: нет Всего: нет |
Проблему поднимал уже, думал решу её сам, но разобраться так и не смог.
Прошу пример, как 1). Нарисовать вместо часов, например, картинку из файла. 2). Узнать размер области рисования, ширину и высоту. 3). Сделать обработчик событий на щелчки мыши, например, на левую возращает обычный вид часов, на правую показывает контекстное меню. НЕ надо мне говорить про то, что бы я почитал книгу по WINAPI, мне нужен пример именно этого, нигде в книгах такого примера я не видел. Желательно даже, чтобы это была ссылка на работающие исходники. Если кто сможет помочь, заранее благодарен. ![]()
|
|||
|
||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 13 Всего: 68 |
Нарисует небольшой кружочек на часиках.
|
|||
|
||||
Sunvas |
|
||||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
Если ты это пишешь для Win XP или 2000, то думаю тут будет проще использовать прозрачную форму и замостить ее поверх часов. С этой формой тебе не будет трудности всунуть туда и рисунок и еще чего-либо. Вот, кое-что набрасал: Код в Формы1 (основной). При нажатии на кнопку на часы моститься форма 2.
Вот код Формы2, которая показывается поверх стандартных часов:
ЗЫ. Дорабатывать было лень. -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
||||
|
|||||
ДенисБелов |
|
|||
![]() Подмастерье Профиль Группа: Участник Сообщений: 14 Регистрация: 12.9.2006 Где: Россия, Киров Репутация: нет Всего: нет |
Спасибо за ответ, сейчас посмотрю что к чему.
Это сообщение отредактировал(а) ДенисБелов - 20.9.2006, 20:52 |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
По другому и не получится это же чужое окно! Придется перехватывать OnPaint. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
ДенисБелов |
|
|||
![]() Подмастерье Профиль Группа: Участник Сообщений: 14 Регистрация: 12.9.2006 Где: Россия, Киров Репутация: нет Всего: нет |
Во-первых спасибо за ответы, хорошая пища для размышлений.
посмотрел оба варианта и оба меня полностью не устраивают. Алгоритм предложенный в первом ответе мне предлагался, он не устроил меня тем, что при обновлении все исчезает. Перехватить OnPaint? Как? И как поймать нажатие мыши? Второй вариант тоже интересен. Однако, окно появляется не сразу, при нажатии на кнопку открытия\скрытия значков трея пропадает на время таймера. Да и при банальном свернуть всё сворачмивается со всеми окнами, оно и понятно. Может можно "приклеить" его так чтобы оно было уже всегда наверху, несмотря ни на что. Вобщем, тема остается открытой, помогите доработать эти варианты или предложите новые. И как уже говорил ![]() |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
А не проще ли будет создать свое окно , да и поставить его выше часов, а там рисовать все что хочется , ну и вставлять время?
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
ДенисБелов |
|
|||
![]() Подмастерье Профиль Группа: Участник Сообщений: 14 Регистрация: 12.9.2006 Где: Россия, Киров Репутация: нет Всего: нет |
Sunvas это и предлагал, однако как решить проблемку чтобы окно было всегда выше всех, даже если нажать на кнопку "свернуть всё".
|
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Это уже хоть и каряво, но решили (см. поиск по форуму). Для перехвата сообщений служат несколько метов. Простейший, он же худший - это вешать хук. Еще можно внедрять свой код, менять точки входа в системные библиотеки и пр. Все это неоднократно обсуждалось в разделе "Delphi: WinAPI и системное программирование". Туда прямая дорога. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 13 Всего: 68 |
Примерно так:
|
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
~FoX~, это WM_PAINT своего окна, а нужно чужого, свой то зачем?
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
ну так полюбому идет команда окну "свернутся" , а что если поставить свой обработчик на это сообщение , да игнорировать его -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. ![]() |
|||
|
||||
Sunvas |
|
|||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
Ну.. Можно еще скрыть окно часов, а на его место всунуть свое окно, путем изменения родителя с Application на TrayNotifyWnd при помощи windows.setparent
-------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |