Страница 1 из 1

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

Добавлено: 29 май 2014, 13:02
MDCI
Пытаюсь нарисовать функцией 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 не пикселы?
Помогите разобраться.

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

Добавлено: 29 май 2014, 15:54
Romeo
Единица измерения именно пикселы. Всё должно работать. Может rc вычисляется неверно?

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

Добавлено: 29 май 2014, 16:21
MDCI
вычисление 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);
Все вроде бы правильно...

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

Добавлено: 29 май 2014, 16:37
somewhere
Любые проблемы решает дебаг. Перед вызовом нужно посмотреть числовые значения всех параметров, идущих в стретч. Очевидные, типа хэндлов, можно опустить.
Без дебага искать проблему можно бесконечно.