Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.18;
Скачать: CL | DM;

Вниз

Кнопка ПУСК   Найти похожие ветки 

 
Lessa   (2004-06-02 21:50) [0]

Подскажите ответ: на событие формы onCreate код
Image := TPicture.create;
Image.bitmap.LoadFromFile("NewButton.BMP");
StartButton := FindWindowEx(FindWindow("Shell_TrayWnd", nil), 0, "Button", nil);
oldBitmap := SendMessage(StartButton, BM_SetImage, 0, Image.bitmap.handle);


Должен меняться заголовок кнопки ПУСК. Но ничего не происходит. То есть старая картинка исчезает, а новая не появляется. Голая кнопка надоедает, старая -- неинтересно (восстанавливаю на onDestroy). И еще. Перемещаться она тоже отказывается. Из-за чего это и что можно сделать?


 
Игорь Шевченко ©   (2004-06-02 22:01) [1]


> И еще. Перемещаться она тоже отказывается.


Это как понимать ?


 
Lessa   (2004-06-02 22:04) [2]

MoveWindow(FindWindowEx(FindWindow("Shell_TrayWnd", nil), 0, "Button", nil),
             300, 0, 80, 22, true);

Вот так


 
Игорь Шевченко ©   (2004-06-02 22:29) [3]

А проверять, что функции FindWindow возвращают, не поможет ?


 
DVM ©   (2004-06-02 23:44) [4]

>Lessa   (02.06.04 21:50) 
во-первых, кнопка Пуск OWNER DRAW, т.е ей глубоко по барабану, кто и что там за рисунок на нее помещает - рисунок сий рисует родитель кнопки.
во-вторых риунок ваш в другом адресном пространстве.


 
Lessa   (2004-06-03 09:37) [5]

Да?.. Но ведь рисунок-то исчезает.


 
Clickmaker ©   (2004-06-03 10:13) [6]


> DVM ©   (02.06.04 23:44) [4]
> >Lessa   (02.06.04 21:50)  
> во-первых, кнопка Пуск OWNER DRAW

Нет. Она со стилем BS_BITMAP


 
Lessa   (2004-06-03 10:59) [7]

О! Вот это открытие! Кнопка перемещается на доли секунды, а потом снова становится на место!!! Почему?!

P.S. код не мой, а взят с сайта delphiworld, причем там клятвенно заверяют, что все работает в лучшем виде.


 
Игорь Шевченко ©   (2004-06-03 11:54) [8]


> P.S. код не мой, а взят с сайта delphiworld, причем там
> клятвенно заверяют, что все работает в лучшем виде.


Тогда наверное, разумно там задать вопрос ?


 
Lessa   (2004-06-03 12:10) [9]

там только статьи


 
DVM ©   (2004-06-03 13:31) [10]

>Нет. Она со стилем BS_BITMAP

В XP без этого стиля. Там хоть эта кнопка и стандартная, но оконная прцедура ее переопределена, там картинка и рисуется вероятно.


 
Lessa   (2004-06-03 14:46) [11]

Так как насчет сабжа? Упрямость кнопки просто раздражает. Может, у кого-то была подобная проблема?

Или, если нет, подскажите, как отловить нажатие на нее.


 
Lessa   (2004-06-03 17:46) [12]

Значит, так. Путем  многократных экспериментов и тыков вслепую установлено, что:
-findwindow указывает именно на кнопку Пуск
-кнопка отказывается менять картинку, но охотно соглашается ходить "голой" (после перезапуска explorer, однако, снова приобретает прежний вид)
-перемещаться и изменять размеры она желает только на короткий промежуток времени, потом снова "прыгает" на место
-убрать ее тоже можно.

???


 
Clickmaker ©   (2004-06-03 19:23) [13]


> Lessa   (03.06.04 17:46) [12]

Ну просто детектив какой-то :)


 
DeadMeat ©   (2004-06-03 19:37) [14]

> [12] Lessa   (03.06.04 17:46)
> но охотно соглашается ходить "голой"
Какаято кнопка для нудистов...
А вообще надо переопределить процедуру "получения сообщений" этой кнопки, т.е. WindowProc

---
...Death Is Only The Begining...


 
Lessa   (2004-06-03 19:46) [15]

картинку сменить МОЖНО, но опять-таки на доли секунды. Смутное подозрение витает в воздухе, что это винда мне противостоит... но докажу завтра, попробую тот же опыт на winME.

Что за маниакальная привычка к аккуратности у вин2000!.. Все ставит на место.


 
DVM ©   (2004-06-03 20:45) [16]


> Lessa   (03.06.04 19:46) [15]

Как уже сказали, надо заменить оконную процедуру кнопки на свою. Но эта процедура должна быть в том же адресном пространстве, что и кнопка. В чужое АП можно попасть с пом любого хука. Заменив процедуру кнопки на свою, надо везде, кроме как в WM_PAINT вызывать старую процедуру, а для WM_PAINT свою. Только следует учесть, что при этом пропадет и рамка кнопки, которую тоже надо будет дорисовать, учитывая ее текущее состояние. Что до XP - там есть стандартные средства в виде тем оформления, в остальных системах так как я написал.
Вобщем возни полно.


 
GanibalLector ©   (2004-06-03 22:08) [17]

А...знакомо.
Вот тут теже грабли http://forums.realcoding.net/topic2022.html



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

Текущий архив: 2004.07.18;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.023 c
3-1087887695
turich
2004-06-22 11:01
2004.07.18
Помогите с DBEdit


14-1088367069
Ломброзо
2004-06-28 00:11
2004.07.18
Немного о шарлатанах


3-1088072404
alex z
2004-06-24 14:20
2004.07.18
delphi + firebird


14-1087459582
blackman
2004-06-17 12:06
2004.07.18
Что за портал дремучих?


3-1087833532
German
2004-06-21 19:58
2004.07.18
Индексация