Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Янг Майкл Дж. -> "Visual С++ 6. Полное руководство: В 2 т.(том2)" -> 96

Visual С++ 6. Полное руководство: В 2 т.(том2) - Янг Майкл Дж.

Янг Майкл Дж. Visual С++ 6. Полное руководство: В 2 т.(том2) — Бином, 2006. — 530 c.
Скачать (прямая ссылка): vicualcc2006t2.djvu
Предыдущая << 1 .. 90 91 92 93 94 95 < 96 > 97 98 99 100 101 102 .. 173 >> Следующая

// этого представления virtual BOOL PreCreateWindow(CREATESTRUCT& cs); protected: //)}AFX_VIRTUAL
// Реализация public:
virtual -CBitDemoView(); #ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContextS dc) const; #endif
protected:
// Сгенерированные функции схемы обработки сообщений protected:
//((AFX_MSG(CBitDemoView)
// ПРИМЕЧАНИЕ - Мастер ClassWizard будет добавлять // и удалять здесь функции-члены класса
// НЕ РЕДАКТИРУЙТЕ текст в этих блоках сгенерированного кода! //})AFX_MSG DECLARE_MESSAGE_MAP()
>;
#ifndef _DEBUG // отладочная версия в BitDemo View, cpp inline CBitDemoDoc* CBitDemoView::GetDocument()
{ return (CBitDemoDoc*)m_pDocument; } #endif
1111/11 и i ii 1111111111 и t и i и i и 11111111111111111111111//11 in i/пин
//{{AFX_INSERT_LOCATION)(
// Visual С++ вставит дополнительные объявления // сразу перед предыдущей строкой
#endif
// !defined(
// AFX BITDEMOVIEW_H 0955F7F5 A77B 11D1_80FC_00C0F6A83B7F_INCLUDEDJ
Листинг 20.8.
// BitDemoView.cpp : реализация класса CBitDemoView //
#include "stdafx.h" #include "BitDemo.h"
#include "BitDemoDoc.h" #include "BitDemoView.h"
#ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE
static char THIS_FILE(] = _FILE_;
#endif
111111111111111111111 III 1111111111111111/11111111111111111111111111111 II класс CBitDemoView
IMPLEMENT_DYNCREATE(CBitDemoView, CView)
BEGIN_MESSAGE_MAP(CBitDemoView, CView) //{(AFX_MSG_MAP(CBitDemoView)
// ПРИМЕЧАНИЕ - Мастер ClassWizard будет добавлять // и удалять здесь макросы обработки сообщений
//НЕ РЕДАКТИРУЙТЕ текст в этих блоках сгенерированного кода! //))AFX_MSG_MAP END_MESSAGE_MAP()
1111111111111111111111111111111111111111111111111111111111111111111111 II Конструктор/деструктор класса CBitDemoView
CBitDemoView::CBitDemoView() (
// TODO: Здесь добавьте код конструктора BITMAP ВМ;
m_Bitmap.LoadBitmap (IDB_BITMAP1); m_Bitmap.GetObject (sizeof (ВМ), &BM); m_BitmapWidth = BM.bmWidth; mJBitmapHeight = BM.bmHeight;
)
CBitDemoView::-CBitDemoView()
{
}
BOOL CBitDemoView::PreCreateWindow(CREATESTRUCT& cs) {
// TODO: модифицируйте класс окна или стили окна, // изменяя поля структуры cs
return CView::PreCreateWindow(cs) ;
}
111111 /111111111 /111 /111111 /11 /111 /111 /1 /1111111 /11111 /11111111 /11//, /I Отображение окна класса CBitDemoView
void CBitDemoView::OnDraw(CDC* pDC) 1
CBitDemoDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc);
// TODO: Здесь добавьте код отображения собственных данных
CDC MemDC;
RECT ClientRect;
// создайте объект контекста устройства памяти и выберите в нем // объект растрового изображения: MemDC.CreateCompatibleDC (NULL) ; MemDC.SelectObject (smJBitmap);
// введите текущие размеры окна представления: GetClientRect (SClientRect);
// отобразите растровое изображение // с окном представления: pDC->StretchBlt О, О,
согласуя его
ClientRect.right, ClientRect.bottom, iMemDC, 0, 0,
m_BitmapWidth, m_BitmapHeight, SRCCOPY);
// координаты верхнего левого угла
// прямоугольника-приемника;
// ширина прямоугольника-приемника;
// высота прямоугольника-приемника;
// объект контекста устройства источника;
// координаты верхнего левого угла
// прямоугольника-источника;
// ширина прямоугольника-источника;
// высота прямоугольника-источника;
// код растровой операции
)
I /111111 III 11 / ) I III 1111111 III 1111111 /1 /11 /11 / / /1 /1 /1 /11П /11 НІ І/1/1 і і / // диагностика класса CBitDemoView
#ifdef _DEBUG
void CBitDemoView::AssertValid() const {
CView::AssertValid();
>
void CBitDemoView::Dump(CDumpContextS dc) const {
CView::Dump(dc);
}
CBitDemoDoc* CBitDemoView: .-GetDocument () // неотладочная версия
// является встроенной
(
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CBitDemoDoc))); return (CBitDemoDoc*)m_pDocument;
}
tendif //_DEBUG
111111111111!11111111111II111111111111111111111111111111111111111111111 I/ обработчики сообщений класса CBitDemoView
Итоги
В этой главе вы узнали, как создаются и отображаются растровые изображения, и как используются функции битовых операций для перемещения и манипулирования блоками графических данных. На этом завершается изучение основных методов отображения текстовых и графических данных внутри окна программы. Вспомним некоторые важные концепции и методы, рассмотренные в главе.
• Растровое изображение сохраняет в памяти или файле точный "слепок" изображения, записывая состояние каждого пикселя, используемого для создания изображения на конкретном устройстве.
• Чтобы создать растровое изображение, сначала объявите экземпляр MFC-класса CBitmap, а затем вызовите соответствующую функцию этого класса для инициализации объекта.
• Объект растрового изображения можно инициализировать, вызывая функцию CBitmap:: LoadBitmap для загрузки растрового изображения из ресурса программы. Чтобы воспользоваться этим методом, необходимо иметь растровое изображение, спроектированное в графическом редакторе Visual С++, или импортированное из какого-либо файла.
• В качестве альтернативного способа можно инициализировать пустое растровое изображение, вызвав функцию CBitmap: : CreateCompatibleBitmap и задав необходимый размер изображения. Затем можно нарисовать нужный рисунок внутри этого изображения, выбирая объект растрового изображения внутри объекта контекста устройства памяти и используя к этому объекту любые функции рисования класса CDC.
Предыдущая << 1 .. 90 91 92 93 94 95 < 96 > 97 98 99 100 101 102 .. 173 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100