Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.08.2007, 21:52   #1
unnamed
Пользователь
 
Регистрация: 08.04.2007
Сообщений: 15
По умолчанию проблемы с функцией StretchDIBits

При отображении в окне растра возникает следующая проблема:
изображение появляется ниже, чем я указываю в параметрах функции StretchDIBits и выходит за рамки окна как снизу, так и справа.
При изменении размеров окна пропорции смещения изображения сохраняются, т.е. изображение всегда выводится относительно окна так:

*****************
*-------------------*
*#################
*#------------------*--#
*#------------------*--#
*#------------------*--#
*#***************--#
..#---------------------#
..#################

**-окно
##-изображение

Вызов функции выглядит так:
Код:
StretchDIBits(hDC,0,0,wndWindth,wndHeight,0,0,srcWindth,srcHeight,BitmapBits,BitmapInfo,DIB_RGB_COLORS,SRCCOPY)
Структура BitmapInfo и массив BitmapBits заполнены корректно.
При изменении стиля класса окна и области вывода (клиентская/неклиентская) проблема остаётся.
В msdn про такие чудеса ничего не написано.

Кто-нибудь сталкивался с чем-нибудь подобным?
Если нет, то есть какие нибудь предположения?
Практика - лучший критерий истины. К.Маркс.
unnamed вне форума Ответить с цитированием
Старый 15.08.2007, 20:41   #2
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

а ты не пробовал ставить отрицательный третий параметр
rpy3uH вне форума Ответить с цитированием
Старый 16.08.2007, 12:42   #3
unnamed
Пользователь
 
Регистрация: 08.04.2007
Сообщений: 15
По умолчанию

Цитата:
Сообщение от rpy3uH Посмотреть сообщение
а ты не пробовал ставить отрицательный третий параметр
пробовал. Получается вот такая штука:

**********************
*--------------------------*
*#######################
*#-------------------------*.....#
*#-------------------------*.....#
*#-------------------------*.....#
*#-------------------------*.....#
*#######################
*--------------------------*
**********************

** - окно
## - изображение

Как написано в учебниках по winapi и в msdn, функция StretchDIBits масштабирует область-источник, так чтобы она совпала по размерам с областью назначения, но в моём случае это масштабирование почему то происходит неверно, даже если эти области равны и масштабирование вообще не нужно.




-------------------------------------------------------------------------
Всё. Разобрался.
Преписал код "по-другому" и всё заработало, хотя ошибку так и не нашёл. Извините за ложную тревогу.
Практика - лучший критерий истины. К.Маркс.

Последний раз редактировалось unnamed; 16.08.2007 в 13:59.
unnamed вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите с функцией 1234 Общие вопросы Delphi 5 30.08.2008 10:55
Помогите с функцией Родион Общие вопросы Delphi 3 08.05.2008 19:18
Вопрос по работе с функцией ВПР igoreka Microsoft Office Excel 2 07.12.2007 12:50
Проблемы с функцией OCIBindByName(). OSKiller PHP 2 19.03.2007 16:48
помогите с функцией zetrix Microsoft Office Excel 0 31.10.2006 07:32