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

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.07.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.03 c
4-1086331953
shelest
2004-06-04 10:52
2004.07.18
перехват клавиш?


14-1088580931
Соловьев
2004-06-30 11:35
2004.07.18
Может и старо:)


1-1088931071
ida
2004-07-04 12:51
2004.07.18
Как копировать в StringGrid?


1-1088611345
Ven
2004-06-30 20:02
2004.07.18
bat файлы


14-1088584910
Sour
2004-06-30 12:41
2004.07.18
Никто не сталкивался с такой проблемой с принетом





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