Форум: "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