![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Дрон |
|
||||||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 93 |
В Spy++ в дереве окон находим:
"Главное меню" DV2ControlHost -> "" Desktop User Pane -> "Эльфит" Static Там можно и текущее HWND окна посмотреть. Только оно будет у тебя при каждом запуске Windows разное. Пробуем теперь так: (Пример со спецификой C++Builder, т.к., на сколько я помню, ты на нём пишешь)
Этот код создаст кнопочку с надписью тест в правой части синего окошка. После закрытия твоей программы кнопка будет уничтожена. Как поставить на неё обработчик попробуй придумать сам -- у меня пока что нет времени. Есть один недостаток. Эта кнопка просто так видна не будет. Как я понял, чтобы она нормально рисовалась, надо, чтобы прога использовала CommonControls версии 6.0. Проще говоря, нужно добавить манифест, который устанавливает элементы управления в стиле Windows XP. Если до сих пор не знаешь как, то вот один из способов. Копируем это в текстовый файл manifest.txt:
В Билдере выбираем в меню Project -> Add to Project... и добавляем к проекту файл resource.rc Всё ЗЫ: Выяснено экспериментально -- ничего гарантировать не могу Это сообщение отредактировал(а) Дрон - 6.6.2004, 15:46 -------------------- Да. Именно так. |
||||||
|
|||||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 93 |
Только что заметил, что кнопка не видна если нажать мышой на кнопку Пуск, правда при наведении в то место, где она должна быть -- становится видна.
Если же нажимать клавишу Windows на клавиатуре -- видна сразу. Это сообщение отредактировал(а) Дрон - 6.6.2004, 15:54 -------------------- Да. Именно так. |
|||
|
||||
| Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
угу, и что тогда делать? Но всё равно классно работает, огромное спасибо! |
|||
|
||||
| Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
И ещё :
как пользоватся этой функцией?: CreateWindow(); Как кнопки создавать я ужё понял, а как например ProgressBar или Edit? |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург Репутация: 10 Всего: 93 |
Хмм... Ничего особо толкового больше выкопать не смог.
Насчёт CreateWindow можешь не париться Любой Билдеровский Control можно легко туда запихнуть. Пусть у тебя есть Button1, а Win -- HWND нужного окна. Пишем так:
Рисуется так же криво. ProgressBar рисоваться не захотел вообще. Edit ещё более или менее работал. Но главная проблема в том, что теперь этот Control будет посылать сообщение другому окну (ведь мы поменяли его Parent) и OnClick не сработает В общем, направление поиска я указал, а дальше похоже ничем помочь не могу... -------------------- Да. Именно так. |
|||
|
||||
| Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Все равно спасибо!
|
|||
|
||||
| Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Уф! ну я и запутался!
Кто-нибудь подскажите как обработать эту кнопку! |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
можно подменить оконную процедуру кнопки и в ней отправлять копию сообщений в свое приложение
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US Репутация: 27 Всего: 165 |
я бы попробовал посмотреть что за мессаги приходят пуску и поставить на них хук.
--------------------
|
|||
|
||||
| Elfet |
|
|||
![]() Белый и Пушистый ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 3776 Регистрация: 2.4.2003 Репутация: нет Всего: 16 |
Я бы так и зделал если бы знал как!
Можно примерчик? |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
внедряеш свой код в Explorer:
http://ldg.h11.ru/modules.php?name=Content&pa=showpage&pid=6 в этом коде меняеш оконную процедур своей кнопки:
( сохранив адрес старой ) и в новой оконной процедуре посылаеш опии необходимых сообщений своем приложению хотя гемора ... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |