А И Легалов - Применение Windows API
На сайте КнигаГо можно читать онлайн выбранную книгу: А И Легалов - Применение Windows API - бесплатно (полную версию книги). Жанр книги: Современные российские издания, Литература ХXI века (эпоха Глобализации экономики), Windows, Программирование: прочее, Windows API, год издания - 2002. На странице можно прочесть аннотацию, краткое содержание и ознакомиться с комментариями и впечатлениями о выбранном произведении. Приятного чтения, и не забывайте писать отзывы о прочитанных книгах.
![]() | Название: | Применение Windows API |
Автор: | А И Легалов | |
Жанр: | Современные российские издания, Литература ХXI века (эпоха Глобализации экономики), Windows, Программирование: прочее, Windows API | |
Изадано в серии: | неизвестно | |
Издательство: | неизвестно | |
Год издания: | 2002 | |
ISBN: | неизвестно | |
Отзывы: | Комментировать | |
Рейтинг: | ||
Поделись книгой с друзьями! |
Краткое содержание книги "Применение Windows API"
Аннотация к этой книге отсутствует.
Читаем онлайн "Применение Windows API". [Страница - 32]
int xRange = (_widthBkg - _widthSprite) / 2;
int yRange = (_heightBkg - _heightSprite) / 2;
int x = xRange + static_cast<int>(xRange * sin(speed * _tick));
int y = yRange + static_cast<int>(yRange * cos(4 * speed * _tick));
Blitter bltMask(_mask);
bltMask.SetMode(SRCPAINT);
bltMask.SetDest(x, y);
bltMask.BlitTo(bmpCanvas);
Blitter bltSprite(_sprite);
bltSprite.SetMode(SRCAND);
bltSprite.SetDest(x, y);
bltSprite.BlitTo(bmpCanvas);
// update the buffer
_bitmapBuf = bmp;
}
For completeness, here's the definition of bitmap canvas. You draw directly on this canvas using standard canvas methods, like Line, Text, SetPixel, etc... Here we only blit bitmaps into it.
class BitmapCanvas: public MemCanvas {
public:
BitmapCanvas(HDC hdc, HBITMAP hBitmap) : MemCanvas(hdc) {
// convert bitmap to format compatible with canvas
_hOldBitmap = reinterpret_cast(::SelectObject(_hdc, hBitmap));
}
~BitmapCanvas() {
::SelectObject(_hdc, _hOldBitmap);
}
private:
HBITMAP _hOldBitmap;
};
class MemCanvas: public Canvas {
public:
MemCanvas(HDC hdc) : Canvas(::CreateCompatibleDC(hdc)) {}
~MemCanvas() {
::DeleteDC(_hdc);
}
};
Now, if you want more speed, read about DirectDraw.
(обратно)
Примечания
1
Имеется превосходная статья Элен Ульман (Ellen Ullman), которае должна быть рекомендована для чтения каждому, кто все еще чувствует позывы к использованию MFC или OWL. Она доступно интерактивно:Часть 1
Часть 2
или, в печатном виде, в августовском издании журнала Харпера за 1998 год. Предлагаем Вам несколько цитат:
"… В этом мире программирования, написание моего кода перемещалось с акцента на задачу, в сторону становления набором придатков к архитектуре системы, выстроенной Microsoft."
"… Для чего изучать весь сложный код, который волшебники генерируют для меня, если он и так всегда работает?"
"… Искушение никогда не знать, что лежит в основе той легкости, подобно ослабляющей пассивности телевидения. Успокаивающая пустота, когда театр темен. Как приятно ощущать себя потребителем! (подчеркнуто мной. А.Л. )"
Если вы — энтузиаст объектно-ориентированного программирования, то найдете это цитирование официальных Руководящих принципов MFC для написания расширений библиотеки классов довольно забавным.
Ограничьте использование "Private" в Ваших классах. Это необходимо, чтобы пользователи, были способны использовать разработанные Вами MFC-дружественные классы способами, которые Вы могли бы первоначально не предусмотреть. Храня большую часть методов, элементов данных, и общих операторов публично, Вы допускаете гибкость в их использовании. В MFC, даже функции, объявленные в разделе Реализации класса обычно общие (public) или защищенные (protected).(обратно)