Важная информация
Показано с 1 по 4 из 4

Тема: Изменение логической палитры на VB6

  1. #1 Изменение логической палитры на VB6 
    Новичок
    Регистрация
    24.01.2016
    Сообщений
    2
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Нужен конкретный и РАБОТАЮЩИЙ коротенький и наглядный пример (код) использования API - функции SetPaletteEntries
    DECLARE FUNCTION SetPaletteEntries LIB "GDI32.DLL" ALIAS "SetPaletteEntries" (BYVAL hPalette AS DWORD, BYVAL wStartIndex AS DWORD, BYVAL wNumEntries AS DWORD, lpPaletteEntries AS PALETTEENTRY) AS DWORD
    на языке VB6 или Power Basic Console Compiler 5.0 или выше.
    Типа: Рисуем рисунок любой примитивный (методом LINE и т. д.) в графическом окне (для PBCC 5.0 или выше) или форме(PictureBox, Image) для VB6 какими-нибудь цветами. А потом меняем программно с помощью API - функции SetPaletteEntries логическую палитру для 256 цветов (именно 256!) и выводим тот же рисунок точно так же как и до того. Но он уже будет(должен), очевидно, отображаться другой палитрой красок. И всё, больше ничего!
    Главное:
    1) Где и как конкретно брать хэндл палитры hPalette? (это самое непонятное)
    2) wStartIndex = 0
    3) wNumEntries = 256
    4) Заполнить структуру lpPaletteEntries какими-нибудь произвольными (RND) кодами цветов (0-255) в цикле и поместить структуру (указатель на неё, первый элемент) в API-функцию.
    И чтобы это реально РАБОТАЛО именно для VB6 или PBCC 5.0 или выше (примеры на С++ и Дельфи абсолютно мимо, НЕ НАДО!)
    Жду конкретный РАБОТАЮЩИЙ код!!!
    Ответить с цитированием  
     

  2. #2  
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    4,011
    Сказал(а) спасибо
    1,887
    Поблагодарили 1,008 раз(а) в 866 сообщениях
    Записей в блоге
    1
    Понимаю, конечно, почему вы можете не хотеть сэмулировать 256-цветный режим на 32-х битном.
    Мол реал тайм фейды и скорость отображения(аппаратное изменение палитры как под DOS-ом).
    Но просто не знаю у кого на рабочем столе такая цветность. Зачем же так радикально с пользователями?

    И для какой задачи вам это?
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

  3. #3  
    Новичок
    Регистрация
    24.01.2016
    Сообщений
    2
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Задача такая:
    Я перелагаю DOS-овский код на BASIC для вывода формата gif89a на WINDOWS. В ДОС-е логическая палитра считывалась из файла и побайтно пересылалась в регистры палитры низкоуровневыми командами OUT. Винды не поддерживают низкоуровневые команды типа OUT. Их аналогами является API - функция SetPaletteEntries. Вот и всё!

    Либо вообще отказаться от пересылки палитры в машинные регистры, непосредственно выбирая байты из считанной в символьную переменную палитры функцией ASC(MID$(P$,i,1)).

    Либо тупо:
    С помощью какой API-функции (существует ли такая?) можно на форму или какой-другой элемент в VB6 загрузить изображение в формате jpg или gif ? Именно эти форматы и именно API-функция (а не средства языка). К какой библиотеке эта API-функция принадлежит? Желательно конкретный пример на VB6. То есть LoadPicture(path$) не использовать. Так как мне вообще-то для графического окна PBCC 5 или выше это надо, а там такой функции для gif и jpg нет. Простой gif89a без анимации.
    Короче, вспомнить молодость и примеры вывода gif89a под ДОС на BASIC(Quick или Power) и тупо переложить их для Виндов на Бейсике без всяких многострочных кода выкрутасов.
    Ответить с цитированием  
     

  4. #4  
    Модератор
    Регистрация
    19.02.2014
    Сообщений
    405
    Сказал(а) спасибо
    108
    Поблагодарили 309 раз(а) в 193 сообщениях
    Записей в блоге
    36
    Используй DIB-секцию.
    UA6527P
    Ответить с цитированием  
     

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 4
    Последнее сообщение: 27.03.2015, 07:14
  2. Ответов: 0
    Последнее сообщение: 17.10.2014, 00:03
  3. Ответов: 9
    Последнее сообщение: 03.06.2014, 15:20
  4. Изменение цвета в функции SpeedButton1Click
    от Nikolay Gulikov в разделе С++ Builder
    Ответов: 0
    Последнее сообщение: 03.06.2014, 07:57
  5. Изменение цвета текста в SCREEN 1
    от SMB в разделе QBasic
    Ответов: 3
    Последнее сообщение: 21.11.2010, 18:03
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •