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

Вниз

Bitmap в Menu   Найти похожие ветки 

 
Clift   (2004-02-29 23:56) [0]

При добавлении иконки(TBitmap) в динамически созданный пункт меню иконка соответствующая пункту меню подвержена инвентированию(изменению) цвета при выделении соответствующего пункта меню.
Как от этого избавиться? (Одна и та же иконка(того же цвета) независимо от того веделен пункт меню или нет)


 
Defunct   (2004-03-01 01:53) [1]

> При добавлении иконки(TBitmap) в динамически созданный пункт меню иконка соответствующая пункту меню подвержена инвентированию(изменению) цвета при выделении соответствующего пункта меню.

Неправда.

> Как от этого избавиться? (Одна и та же иконка(того же цвета) независимо от того веделен пункт меню или нет)

1. Отказаться от старых версий Win95.
2. Установить MS-Internet Explorer 5.0 или выше.
3. Установить режим экрана 64k цветов.
4. Использовать битмапы 16x16x8 а лучше 16x16x24


 
Clift   (2004-03-01 03:26) [2]

>Defunct ©
???
Почему-то битмапы в подменю SendTo и New отображаются нормально...


 
Defunct   (2004-03-01 03:35) [3]

> Почему-то битмапы в подменю SendTo и New отображаются нормально...

Значит они чем-то отличаются от тех которые "инвертируются". Возможно, размер или кол-во цветов не совпадает или палитра другая. Проблема напрямую связана с четырьмя перечисленными причинами.


 
Clift   (2004-03-01 03:47) [4]

>Defunct ©
1. Отказаться от старых версий Win95.
2. Установить MS-Internet Explorer 5.0 или выше.
3. Установить режим экрана 64k цветов.
4. Использовать битмапы 16x16x8 а лучше 16x16x24


1.Если моя версия ОС создаёт "нормальные" изображения то и я могу создать "нормальные" изображения в моей версии ОС
2.Аналогично первому
3.Аналогично(Если при текущем режиме битмапы нормально выглядят в виндовсе то и моя программа может создать "нормальные" изображения в меню)
4.Недумаю что если поменять кол-во цветов инвентирование проподёт. К тому-же я загружаю изображение из Shell32.dll т.е. стандартное изображение иконки.
...


 
Clift   (2004-03-01 03:51) [5]

Может я не тем пользуюсь?
Битмапы я добавляю с помощью SetMenuItemBitmaps


 
Defunct   (2004-03-01 04:04) [6]

Можно взглянуть на текущие установки системы:

Версия Windows?
Версия IE?
Разрешение экрана?
Размер и кол-во цветов загружаемых Bitmap?

Примеры багов:
W95 с IE3.0 (в эксплорере есть картинки в меню и на Toolbar).
В программах на Delphi неверено отображаются все меню и ToolBars.

Еще пример:
256 цветов в системе.
Один Bitmap с палитрой Windows Standard 8-bit, Второй Bitmap со спец. палитрой тоже 8-bit (например, только оттенки красного). Первый отображается правильно, второй будет с инверсией.

Еще пример:
Shell32 возвращает (4-х битовую палитру иконки с отенками цвета, что поидее у Вас и имеет место), но мы получаем ту же иконку правда со стандартной палитрой цветов, наблюдается инверсия.

Приводите все картинки к одному виду 16x16x24 тогда точно ничего не будет глючить. Для достоверности выводите их на канву.


 
Defunct   (2004-03-01 04:15) [7]

> Битмапы я добавляю с помощью SetMenuItemBitmaps

Можно попробовать добавлять Bitmap в ImageList, а новому пункту меню назначать ImageIndex.


 
Clift   (2004-03-01 04:23) [8]

>Defunct ©
Можно попробовать добавлять Bitmap в ImageList, а новому пункту меню назначать ImageIndex.


Я пишу расширение оболочки для контекстного меню. Пунктов меню и так создаётся довольно много.Используется рекурсия.Плюс меню каждый раз разное (нет возможности воспоьзоваться старым).А для каждого пункта ещё нужен обработчик, а это плюс динамический массив(двухмерный). Поэтому я пытаюсь больше использовать API(по другому получается довольно "грузно")


 
Defunct   (2004-03-01 04:29) [9]

> Поэтому я пытаюсь больше использовать API(по другому получается довольно "грузно")

ну что ж, тогда приводите к 16x16x24 перед добавлением в меню.
читайте про:

Bitmap.Palette



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

Форум: "Основная";
Текущий архив: 2004.03.14;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.012 c
7-43924
SkySlider
2003-12-22 13:14
2004.03.14
Обращение к принтеру


1-43447
Petrovitch
2004-02-26 14:33
2004.03.14
установить курсор (мышкин) в какую-то определенную позицию Form.


14-43797
VEG
2004-02-12 23:52
2004.03.14
VisualC++6: INTERNAL COMPILER ERROR


1-43519
Vitaly_old
2004-02-28 10:34
2004.03.14
vmesto_russkix_bukv_znaki_voprosov


1-43442
Archi Gudvin
2004-03-01 08:17
2004.03.14
Помогите пожалуйста. Как вычслить номер недили текущего года





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