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

Как улучшить качество Bitmap? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как получить предыдущую дату? http://www.cyberforum.ru/cpp-beginners/thread481329.html
Помогите решить проблему. С помощью класса CTime получаю тек. дату и все ОК. CTime currentTime = CTime::GetCurrentTime();Но как мне получить предыдущую дату? YYYY =...
C++ Как в диалоге отловить событие помещения фокуса на какой-нибудь контрол? Привет всем! А как, собственно говоря, в диалоге отловить событие помещения фокуса на какой-нибудь контрол? Ну т.е. нажали на табуляцию-перешли на контрол и сразу хочется узнать что это за контрол. http://www.cyberforum.ru/cpp-beginners/thread481304.html
Что почитать про drug&drop? C++
Дорогие друзья ! Никто не может посоветовать где - чо почитать про drug&drop? Нужно реализовать перетаскивание графических объектов из одной части окна,разделенного сплитером , в другую. ...
Правильный перевод строки в число C++
Задача: дан файл,компоненты которого являются числами (все числа записаны через строчку.По одному числу на одной строчке).Найти кол-во четных чисел среди компонент. Я ее пытался решить так:...
C++ Поделитесь p2smon.dll http://www.cyberforum.ru/cpp-beginners/thread481245.html
Всем привет! Ребята выручайте!!!!!!! Я уже задолбался, сил нет :)))) Заглючила p2smon.dll. Вообще-то я её утерял. Пробовал пару других, но они блин работают кривовато. Рылся в инете -...
C++ Поделитесь p2smon.dll Всем привет! Ребята выручайте!!!!!!! Я уже задолбался, сил нет :)))) Заглючила p2smon.dll. Вообще-то я её утерял. Пробовал пару других, но они блин работают кривовато. Рылся в инете -... подробнее

Показать сообщение отдельно
ls233
0 / 0 / 0
Регистрация: 22.12.2009
Сообщений: 3

Как улучшить качество Bitmap? - C++

22.12.2009, 14:56. Просмотров 1123. Ответов 2
Метки (Все метки)

Мне нужно графически отобразить грид (физические координаты ~300x300) на максимально больших, логических, позволяемых дисплеем координатах (600*600 и больших). Для предотвращения мерцания, в начале создается весь 'Bitmap' в памяти (по физическому гриду), а затем, используя 'BitBlt', графически отображается на максимально больших, логических координатах. Проблема в том, что такое расширение приводит к сильному падению в качестве изображения.
Код приложен.
Буду благодарен за любую помощь.
Герман.

void CRecDrawView::OnDraw(CDC* pDC)
{
CRect rect ;
int X, X1, Y, Y1, MatrixPart, DrawPart;

COLORREF color = RGB( 128, 128, 0 );
GetClientRect(rect );
int oldBkMode = pDC->SetBkMode(TRANSPARENT);
DrawPart = (rect.Width( ) < rect.Height( ) )
? rect.Width( ) : rect.Height( ) ;
if(DrawPart > MaxCoordinate) DrawPart = MaxCoordinate;
MatrixPart = MaxCoordinate/DrawPart ; // part of matrix, which must be displayed
X = 0 ;
X1 = X + DrawPart;
Y = 0 ;
Y1 = Y + DrawPart;

CDC memdc, * myDC;

pDC->SetMapMode(MM_ISOTROPIC);
SetWindowExtEx(*pDC,DrawPart,DrawPart,NULL);
SetViewportExtEx(*pDC,rect.right, -rect.bottom,NULL);
SetViewportOrgEx(*pDC,0,rect.bottom,NULL);

CBitmap bmp, *poldbmp;

memdc.CreateCompatibleDC( pDC);
bmp.CreateCompatibleBitmap (pDC, DrawPart, DrawPart);
poldbmp = memdc.SelectObject( &bmp );
memdc.BitBlt( 0,0,DrawPart, DrawPart,&memdc, 0, 0, WHITENESS );
myDC = &memdc;
...
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru