API Меняет иконку окна Excel частично - не меняет ТаскБАр?

Программирование на Visual Basic for Applications
Antov
Обычный пользователь
Обычный пользователь
 
Сообщения: 54
Зарегистрирован: 21.01.2007 (Вс) 6:24

API Меняет иконку окна Excel частично - не меняет ТаскБАр?

Сообщение Antov » 04.05.2007 (Пт) 12:04

Меняю иконку окна следующим образом :
Код: Выделить всё
    Dim Icon&
    Const NewIcon$ = "C:\1.ico"
    Icon = ExtractIcon32(0, NewIcon, 0)
   
    SendMessage32 GetActiveWindow32(), &H80, 1, Icon '< 1 = big Icon
    SendMessage32 GetActiveWindow32(), &H80, 0, Icon '< 0 = small Icon

Если запускатьпроцедуру и редактора VBA - Меняется иконка и у самого окна и в ТаскБаре.
В случае запуска процедуру из самого Excel - у окна иконка меняется, а Таскбар - нет.
Подскажите, пожалуйста, что не так? Или как это обойти?
Спасибо
Всё что не убивает нас - делает нас сильнее.
(С) Ницше

Gloom
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 200
Зарегистрирован: 23.11.2004 (Вт) 15:57
Откуда: СПб

Сообщение Gloom » 04.05.2007 (Пт) 12:51

ИМХО, вызов с ICON_SMALL лишний.
По крайней мере, у меня вот так работает пучком:
Код: Выделить всё
    hIcon = ExtractIcon(0&, IconPath, 0&)
    Call SendMessageX(hwnd, WM_SETICON, ICON_BIG, ByVal hIcon)
   
    SetAppIcon = (hIcon = SendMessageX(hwnd, WM_GETICON, ICON_BIG, ByVal 0&))

Antov
Обычный пользователь
Обычный пользователь
 
Сообщения: 54
Зарегистрирован: 21.01.2007 (Вс) 6:24

Сообщение Antov » 04.05.2007 (Пт) 13:04

Gloom писал(а):ИМХО, вызов с ICON_SMALL лишний.
По крайней мере, у меня вот так работает пучком:
Код: Выделить всё
    hIcon = ExtractIcon(0&, IconPath, 0&)
    Call SendMessageX(hwnd, WM_SETICON, ICON_BIG, ByVal hIcon)
   
    SetAppIcon = (hIcon = SendMessageX(hwnd, WM_GETICON, ICON_BIG, ByVal 0&))


Без small ваапще ничего не происходит.

Я, если честно, с апи не сильно знаком, однако, скажи пожалуйста, а чем отличается твой скрипт от моего?
Насколько я могу понять, одно и тоже, вроде... или нет?
Всё что не убивает нас - делает нас сильнее.
(С) Ницше

Antov
Обычный пользователь
Обычный пользователь
 
Сообщения: 54
Зарегистрирован: 21.01.2007 (Вс) 6:24

Сообщение Antov » 04.05.2007 (Пт) 13:46

Мда...........
Перегрузил винду - всё заработало.

Всем спасибо.
Извините за беспокойство :)
Всё что не убивает нас - делает нас сильнее.
(С) Ницше


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 25

    TopList