IE Plugin Adding XP Style Resize
От: Haiodo Россия  
Дата: 06.08.04 05:36
Оценка:
Возникла такая проблема.
Был написан плигин к IE как Туулбар.
На него добавлается CToolbarCtrl с набором иконок.
После добавления XP Стилей через manifest и ресурсы возникла следующая проблеме.
Изменился размер тулбара.

Размер задаётся следующим образом.

class CCustomToolBarCtrl: 
    public CWindowImpl< CCustomToolBarCtrl, CToolBarCtrl >,
    INT CCustomToolBarCtrl::GetPreferableHeight() const
{}
...
INT CCustomToolBarCtrl::GetPreferableHeight() const
{
    CRect r;
    GetItemRect( 0, &r );
    return r.Height();
}


После чего отдаем этот размер в IE Через GetBandInfo.

После чего когда заргужаем туулбар без XP стиля размер нормальный. Включаем XP Стись размер остаётся прежним но CToolbarCtrl думает что он больше и не правильно отображается.
При убирании manifestа проблема исчезает. Но так же исчезает и прозрачность в иконках на контроле.

Если есть кто сталкивался подскажите что делать.
Re: IE Plugin Adding XP Style Resize
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 06.08.04 06:33
Оценка:
Здравствуйте, Haiodo, Вы писали:

[]

H>После чего когда заргужаем туулбар без XP стиля размер нормальный. Включаем XP Стись размер остаётся прежним но CToolbarCtrl думает что он больше и не правильно отображается.

H>При убирании manifestа проблема исчезает. Но так же исчезает и прозрачность в иконках на контроле.

Выскажу предположение, что на тулбаре есть кнопки со стилем BTNS_DROPDOWN. Была у меня такая-же бяка при наличии кнопок с таким стилем. Не поборол Пришлось на время забить. Хотя интерес к решению проблемы остался...
Re[2]: IE Plugin Adding XP Style Resize
От: Haiodo Россия  
Дата: 06.08.04 07:46
Оценка:
Здравствуйте, Flamer, Вы писали:

F>Выскажу предположение, что на тулбаре есть кнопки со стилем BTNS_DROPDOWN. Была у меня такая-же бяка при наличии кнопок с таким стилем.


Именно такая кнопочка есть в наличии.
Re[3]: IE Plugin Adding XP Style Resize
От: Dzik Россия www.gamefort.km.ru
Дата: 08.08.04 13:59
Оценка:
Здравствуйте, Haiodo, Вы писали:

H>Здравствуйте, Flamer, Вы писали:


F>>Выскажу предположение, что на тулбаре есть кнопки со стилем BTNS_DROPDOWN. Была у меня такая-же бяка при наличии кнопок с таким стилем.


H>Именно такая кнопочка есть в наличии.


Я эту проблемму решил с помощью SetPadding для тулбара.
Т.е. определяешь, какая винда и если необходимо, ставишь паддинг нужный. Я его определил опытным путем.
Re[4]: IE Plugin Adding XP Style Resize
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 08.08.04 15:16
Оценка:
Здравствуйте, Dzik, Вы писали:

D>Здравствуйте, Haiodo, Вы писали:


H>>Здравствуйте, Flamer, Вы писали:


F>>>Выскажу предположение, что на тулбаре есть кнопки со стилем BTNS_DROPDOWN. Была у меня такая-же бяка при наличии кнопок с таким стилем.


H>>Именно такая кнопочка есть в наличии.


D>Я эту проблемму решил с помощью SetPadding для тулбара.

D>Т.е. определяешь, какая винда и если необходимо, ставишь паддинг нужный. Я его определил опытным путем.

Это не выход. Во-первых — "опытным путем", что уже есть плохо. Во-вторых, гуглевский тулбар не меняет своей высоты при включении/отключении тем. В-третьих, чуется мне, что SetPadding — черех ж.. гланды вырезать.

В общем, если это и решение, то, так сказать, уступчивое и половинчатое. Еще раз повторюсь — искал в сети полноценное решение — не нашел. Самому повторить функциональность поведения гугльбара при включении/отключении тем в свое время не удалось.

Может быть, если будет время и интерес, займусь снова. Пока — без надобности.
Re[5]: IE Plugin Adding XP Style Resize
От: Dzik Россия www.gamefort.km.ru
Дата: 09.08.04 02:48
Оценка:
Здравствуйте, Flamer, Вы писали:

F>Это не выход. Во-первых — "опытным путем", что уже есть плохо. Во-вторых, гуглевский тулбар не меняет своей высоты при включении/отключении тем. В-третьих, чуется мне, что SetPadding — черех ж.. гланды вырезать.


F>В общем, если это и решение, то, так сказать, уступчивое и половинчатое. Еще раз повторюсь — искал в сети полноценное решение — не нашел. Самому повторить функциональность поведения гугльбара при включении/отключении тем в свое время не удалось.


F>Может быть, если будет время и интерес, займусь снова. Пока — без надобности.


гугл тулбар рисует тему черех Owner Draw. Поэтому у него таких проблем и нет.
Re[6]: IE Plugin Adding XP Style Resize
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 09.08.04 07:58
Оценка:
Здравствуйте, Dzik, Вы писали:

[]

D>гугл тулбар рисует тему черех Owner Draw. Поэтому у него таких проблем и нет.


Да нет, не думаю, что все через Owner Draw . Причем Spy++ косвенно подтверждает, что Owner Draw там почти не при чем...
Re[7]: IE Plugin Adding XP Style Resize
От: Dzik Россия www.gamefort.km.ru
Дата: 09.08.04 13:19
Оценка:
Здравствуйте, Flamer, Вы писали:

D>>гугл тулбар рисует тему черех Owner Draw. Поэтому у него таких проблем и нет.


F>Да нет, не думаю, что все через Owner Draw . Причем Spy++ косвенно подтверждает, что Owner Draw там почти не при чем...

Хм, а как Вы определяете, Спаем, что гугл не .зает Оунер Дро?
Посмотрите гугловскую дллку. Она динамически загружает uxtheme.dll, которая как раз содержит функции по рисованию тем. К тому эе я не нашел в дллке манифеста.
Решать надежен паддинг или нет Вам, но у продуктом, в котором я использую паддинг пользуется немерянное кол-во юзеров и пока замечаний никаких.
Re[8]: IE Plugin Adding XP Style Resize
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 09.08.04 13:37
Оценка:
Здравствуйте, Dzik, Вы писали:

D>Хм, а как Вы определяете, Спаем, что гугл не .зает Оунер Дро?

D>Посмотрите гугловскую дллку. Она динамически загружает uxtheme.dll, которая как раз содержит функции по рисованию тем. К тому эе я не нашел в дллке манифеста.

Плохо искали. Манифест есть в dll. А по поводу owner draw — вполне допускаю, что таки да — был неправ и гугльбар сам отрисовывает кнопочки при использовании тем. Тогда зачем, собственно говоря, манифест в ресурсах? Я так мыслю, чтобы не мучиться с прорисовкой всего остального. Ну вот, с этим разобрались

D>Решать надежен паддинг или нет Вам, но у продуктом, в котором я использую паддинг пользуется немерянное кол-во юзеров и пока замечаний никаких.


Как обычно, существует несколько способов решения проблемы — мой и неправильный . Еще раз повторю: мне кажется, что менять высоту тулбара, да к тому-же основываясь на эмпирически вычисленной величине — неправильно. А то, что "пользуется немеренно юзеров" — извините, это ни о чем не говорит.
Re[9]: IE Plugin Adding XP Style Resize
От: Dzik Россия www.gamefort.km.ru
Дата: 09.08.04 15:23
Оценка:
Здравствуйте, Flamer, Вы писали:

Лана, ни к чему этот спор не приведет.
Получается, что на данный момент есть 2 варианта решеие проблемы:
1)Owner Draw как гугл например
2)SetPadding как a9.com тулбар например.

Если кто придумает и опишет 3, более правильный способ, я буду просто счастлив, да и автор топика навенрное тоже.

F>Здравствуйте, Dzik, Вы писали:


D>>Хм, а как Вы определяете, Спаем, что гугл не .зает Оунер Дро?

D>>Посмотрите гугловскую дллку. Она динамически загружает uxtheme.dll, которая как раз содержит функции по рисованию тем. К тому эе я не нашел в дллке манифеста.

F>Плохо искали. Манифест есть в dll. А по поводу owner draw — вполне допускаю, что таки да — был неправ и гугльбар сам отрисовывает кнопочки при использовании тем. Тогда зачем, собственно говоря, манифест в ресурсах? Я так мыслю, чтобы не мучиться с прорисовкой всего остального. Ну вот, с этим разобрались


D>>Решать надежен паддинг или нет Вам, но у продуктом, в котором я использую паддинг пользуется немерянное кол-во юзеров и пока замечаний никаких.


F>Как обычно, существует несколько способов решения проблемы — мой и неправильный . Еще раз повторю: мне кажется, что менять высоту тулбара, да к тому-же основываясь на эмпирически вычисленной величине — неправильно. А то, что "пользуется немеренно юзеров" — извините, это ни о чем не говорит.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.