Единица измерения окон MFC

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Аватара пользователя
MDCI
Сообщения: 47
Зарегистрирован: 28 фев 2006, 15:25
Откуда: Симферополь
Контактная информация:

Пытаюсь нарисовать функцией StretchBlt картинку - не выводит всю картинку, а только часть.
код:

Код: Выделить всё

pdc->StretchBlt(0, 0, StretchLen*rc.Width(), StretchLen*rc.Height(), &cdcMemory, 0, 0, rc.Width(), rc.Height(), SRCCOPY); 
или

Код: Выделить всё

pdc->StretchBlt(0, 0, StretchLen*ImageWidth, StretchLen*ImageHeight, &cdcMemory, 0, 0, ImageWidth, ImageHeight, SRCCOPY); 
Чтобы дорисовать всю картинку приходится приплюсовывать к rc (1 код)
Может единица измерения окон MFC не пикселы?
Помогите разобраться.
Аватара пользователя
Romeo
Сообщения: 3126
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

Единица измерения именно пикселы. Всё должно работать. Может rc вычисляется неверно?
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Аватара пользователя
MDCI
Сообщения: 47
Зарегистрирован: 28 фев 2006, 15:25
Откуда: Симферополь
Контактная информация:

вычисление rc примерно такое (rc=rci)

Код: Выделить всё

	rci.right=ceil(rci.left+Buttons[key__Esc].ImageWidth*Buttons[key__Esc].StretchLen);
	rci.bottom=ceil(rci.top+Buttons[key__Esc].ImageHeight*Buttons[key__Esc].StretchLen);
Все вроде бы правильно...
Аватара пользователя
somewhere
Сообщения: 1858
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

Любые проблемы решает дебаг. Перед вызовом нужно посмотреть числовые значения всех параметров, идущих в стретч. Очевидные, типа хэндлов, можно опустить.
Без дебага искать проблему можно бесконечно.
It's a long way to the top if you wanna rock'n'roll
Ответить