Форум программистов, компьютерный форум CyberForum.ru

Delphi и WinAPI

Войти
Регистрация
Восстановить пароль
 
Игорь Тетеркин
0 / 0 / 1
Регистрация: 01.03.2015
Сообщений: 30
#1

Мощение картинкой фон формы - Delphi WinAPI

03.10.2016, 23:29. Просмотров 415. Ответов 1
Метки нет (Все метки)

Написал алгоритм мощения фона. Собственно вот он:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
While bmi^.bmiheader.biWidth*L<rect.Right do
              begin
                While bmi^.bmiheader.biHeight*J<rect.Bottom do
                  begin
                         stretchDiBits(hdc,rect.left+bmi^.bmiheader.biWidth*L,rect.top+bmi^.bmiheader.biHeight*J,
                            bmi^.bmiheader.biWidth,bmi^.bmiheader.biHeight,
                            0,0,bmi^.bmiheader.biWidth, bmi^.bmiheader.biHeight,data,
                            bmi^,DIB_RGB_COLORS,srccopy);
                    J:=J+1;
                  end;
                L:=L+1;
                J:=0;
              end;
Но столкнулся с проблемой. Если картинка маленькая, а окно растягивается до больших размеров, то происходит мерцание.
Прям видно, как фон заполняется картинками.

Обрабатываю в wm_paint. Надо как-то InvalidateRect использовать, но никак не могу понять как именно. Ведь окно отрисовывается всё заново, а надо лишь дорисовывать определённую часть.

Соответственно, надо как-то сначала сохранить то, что уже отрисовалось в окне после этого цикла, а потом сравнивать с новыми размерами окна, если что, то подрисовывать строку или столбец.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2016, 23:29     Мощение картинкой фон формы
Посмотрите здесь:

Кнопка с картинкой на WinApi - Delphi WinAPI
Исходник программы, показывающей пример создания стандартной системной кнопки с картинкой. Поддерживаются темы оформления для отрисовки....

Заменить фон картинкой - HTML, CSS
Привет, подскажите как заменить желтый фон на картинке &quot;1&quot; на картинку &quot;баннер&quot;, пробовал искать с гугл не получается.

Залить фон картинкой - Программирование Android
как залить фон не цветом, а картинкой &lt;RelativeLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; ...

Как сделать фон картинкой? - Joomla
Подскажите,как в протостаре сделать фон не цветом,а чтоб там картинка была

Залить картинкой фон консоли - C++
Здравствуйте.Подскажите пожалуйста если ли в с++ функции,при помощи которых можно залить в консоль музыку,залить на фон консоли...

Заменить фон графика своей картинкой - Matlab
Можно ли в Matlab'е после построения графика заменить фон своей картинкой? Добавлено через 34 минуты Немного поясню. Есть массив...

Можно ли сделать фон сайта картинкой? - HTML, CSS
Помогите плз можно ли сделать фон сайта картинкой?Если да то как?И напишите теги плз.Пример вот siniyvoin.ucoz.ru, но мож я чего не понмаю...

AS 3.0 Как заполнить весь фон swf одной картинкой 15Х15 - ActionScript
Люди помогите! Перерыл весь интернет, не смог найти ответ. Есть маленькое растровое изображение типа 15Х15, необходимо этим...

Возможно менять позицию заливки объекта, фон которого залит Bitmap-картинкой? - Flash
Я создал объект, который залит Bitmap-картинкой. Получается повторяющиеся картинки как фон в объекте. Возможно менять позиции этих картинок...

Блок с картинкой поверх формы - HTML, CSS
Здравствуйте, как наложить конкретно на форму полупрозрачный блок с гифкой в центре. Это нужно для загрузки ajax: пока ожидается результат...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BOGG ART
487 / 413 / 121
Регистрация: 09.12.2013
Сообщений: 2,189
Записей в блоге: 2
04.10.2016, 00:21     Мощение картинкой фон формы #2
Создайте кисть-картинку (не помню как оно там по-научному зовётся) и просто заливайте ею.

Добавлено через 1 минуту
Ещё можете обычную двойную буферизацию прикрутить. Хотя вроде не должно мерцать.
Yandex
Объявления
04.10.2016, 00:21     Мощение картинкой фон формы
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru