Что нового

guictrlcreatepic - стираются черные пиксели... (Бага)

Sαuron

Новичок
Сообщения
45
Репутация
1
Никогда до этого не возникало проблем с 'guictrlcreatepic' функцией. Что я делаю...
1. Создаю основное окно 'Main' - 0x000000 фон
2. Создаю окно 'Kid' - 0xffffff фон
3. В окне Kid создаю картинку функцией guictrlcreatepic()
4. Окно 'Kid' перемещаю в основное окно 'Main' функцией _winapi_setparent()

Появляется проблема... При любом перемещении/обновлении(_winapi_redraw) окна 'Kid' или наложении на него другого окна, в созданной картинке непонятно по какой причине, стираются все черные пиксели, как будто выставлена какая-то прозрачность, но такого в коде и близко нет... В чем может быть проблема?
 
Автор
S

Sαuron

Новичок
Сообщения
45
Репутация
1
Вот простой пример, на котором виден баг. Фон красный. Текст на картинке черный, но черные пиксели исчезают и просвечивается фон... Что это? Флаги на прозрачность не установлены...
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Sαuron
на котором виден баг
А что у вас с окном? Вы используете какую-то программу для изменения оформления окон? Тогда попробуйте её отключить. Дополнительно, установите тему оформления по умолчанию. Похоже на то, что "что-то" в окнах меняет чёрный цвет на красный (это видно по системным кнопкам окна). Измените цвет текста на синий или на зелёный - посмотрите результат.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Sαuron
весь код можно увидеть?
как пример
а функцию _winapi_setparent() необязательно использовать. есть спецстили окна
 
Автор
S

Sαuron

Новичок
Сообщения
45
Репутация
1
InnI сказал(а):
Sαuron
А что у вас с окном? Вы используете какую-то программу для изменения оформления окон? Тогда попробуйте её отключить. Дополнительно, установите тему оформления по умолчанию. Похоже на то, что "что-то" в окнах меняет чёрный цвет на красный (это видно по системным кнопкам окна). Измените цвет текста на синий или на зелёный - посмотрите результат.

Просто тему под себя настроил, элементы окон, текст и т.д. В стиле ХП:smile: Вот на картинке ввел зеленого цвета текст, он отображается нормально, игнорируются только 0x000000 пиксели в картинках, оригинал картинки справа открыт, при этом пиксели других элементов, отображаются нормально, проблема только с guictrlcreatepic


joiner сказал(а):
Sαuron
весь код можно увидеть?
как пример
а функцию _winapi_setparent() необязательно использовать. есть спецстили окна
Кажется я зря про окна написал, они вряд ли влияют, то есть всякие winapi... Пример выше, без использования каких-то доп. библиотек, все в одной форме, но черные пиксели из этой BMP просто вылетают, не отображаются и все. Я читал еще про то, что у этих форматов есть доп альфа слой, типа прозрачности... Но и из JPG, так же вылетают черные пиксели, я прямо не знаю что делать...
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Sαuron
Просто тему под себя настроил <...> не знаю что делать
Установите стандартную тему оформления и проверьте (можете создать нового пользователя, чтобы ваши настройки не сбились). Я проверил версию 3.3.14.2 на трёх Windows (XP, 7, 10) - при стандартном оформлении проблем нет.
 
Автор
S

Sαuron

Новичок
Сообщения
45
Репутация
1
InnI сказал(а):
Sαuron
Установите стандартную тему оформления и проверьте (можете создать нового пользователя, чтобы ваши настройки не сбились). Я проверил версию 3.3.14.2 на трёх Windows (XP, 7, 10) - при стандартном оформлении проблем нет.
Никогда бы не поверил, что тема в Windows может влиять на статичные изображения... Оказывается может -.- Поставил Классику, цвет стал отображаться правильно, тогда начал копать, какая из настроек приводит к исчезновению черных пикселей, зашел в параметры экрана, дело оказалось в настройке 'рельефные объекты' - их цвет был 0x000000, вместо стандартного 0xffffff(цвет устанавливается приложением) - как раз такого цвета пиксели и исчезали, видимо недоработка в виндовс... Мне белые элементы не нравятся, поставил цвет 'рельефных объектов' 0x010101 на глаз тот же черный... такие пиксели очень редко в картинках встречаются, не страшно, если они будут исчезать хаха.
А так это просто загадка, каким образом настройка цвета рельефных объектов влияет на такие же пиксели картинки в приложениях... :blink:

 
Верх