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

 

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

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

Янг Майкл Дж. Visual С++ 6. Полное руководство: В 2 т.(том2) — Бином, 2006. — 530 c.
Скачать (прямая ссылка): vicualcc2006t2.djvu
Предыдущая << 1 .. 152 153 154 155 156 157 < 158 > 159 160 161 162 163 164 .. 173 >> Следующая

virtual void OnlnitialUpdate(); // вызывается после
// вызова конструктора virtual BOOL IsSelected(const CObject* pDodtem) const; // поддержка
// контейнера
//}}AFX_VIRTUAL
// Реализация public:
virtual -CContDemoView(); #ifdef _DEBUG
virtual void AssertValidO const;
virtual void Dump(CDumpContextS dc) const; #endif
protected:
// Сгенерированные функции схемы обработки сообщений protected:
//{{AFX_MSG(CContDemoView)
// ПРИМЕЧАНИЕ - Мастер ClassWizard будет добавлять
// и удалять здесь функции-члены класса
//НЕ РЕДАКТИРУЙТЕ текст в этих блоках сгенерированного кода!
afx_msg void OnDestroyO;
afx_msg void OnSetFocus(CWnd* pOldWnd);
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnlnsertObject();
afx_msg void OnCancelEditCntr() ;
//}}AFX_MSG
DECLARE MESSAGE MAP()
tifndef _DEBUG // отладочная версия находится в файле ContDemoView.срр inline CContDemoDoc* CContDemoView::GetDocument()
{ return (CContDemoDoc*)m_pDocument; } #endif
II //III ill 111111111111111 /11111 /1111 и 1111/III11111111 /111 i 111111 /111 i I
11\{AFX_INSERT_LOCATION}}
// Visual С++ вставит дополнительные объявления // сразу перед предыдущей строкой
#endif
II !defined;
// AFX_CONTDEMOVIEW_H_726A17AD_AC7D_11D1_80FC_00C0F6A83B7F__INCLUDED_)
Листинг 24.20.
// ContDeraoView.cpp : реализация класса CContDeraoView //
#include "stdafx.h" tinclude "ContDemo.h"
#include "ContDemoDoc.h" #include "Cntrltem.h" #include "ContDemoView.h"
#ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE
static char THIS_FILE[] = _FILE__;
#endif
11 /111 i 1111111 i 1111111111111111111111111111 /111111II/III 1111/'ill,'.'IIII II Класс CContDemoView
IMPLEMENT^ DYNCREATE(CContDemoView, CView)
BEGIN_MESSAGE_MAP(CContDemoView, CView)
//({AFX_MSG_MAP(CContDemoView)
// ПРИМЕЧАНИЕ - Мастер ClassWizard будет добавлять
// и удалять здесь макросы обработки сообщении
// НЕ РЕДАКТИРУЙТЕ текст в этих блоках сгенерированного кода!
ON_WM ^DESTROY
ON _WM_SETFOCUS ()
ON_WM_SIZE ()
ON_COMMAND(ID_OLE_INSERT_NEW, OnlnsertObject) ON_COMMAND(ID_CANCEL_EDIT_CNTR, OnCanceiEditCncr) //})AFX_MSG_MAP END_MESSAGE_MAP()
111111111111111111111111111IIIII111111111111111111! 111111111111111 i 1111 II Конструктор/деструктор класса CContDemoView
CContDemoView::CContDemoView() {
m_pSelection = NULL;
// TODO: добавьте здесь код конструктора
CContDemoView::--CContDemoView()
{
}
BOOL CContDemoView::PreCreateWindow(CREATESTRUCT& cs) (
// TODO: Модифицируйте класс окна или стиль окна, // изменяя поля структуры cs return CView::PreCreateWindow(cs);
}
1111111111111111111111111111111111111111111111111111111111111 i i 111! 11 /1 II Отображение с использованием класса CContDemoView
void CContDemoView::OnDraw(CDC* pDC) (
CContDemoDoc* pDoc = GetDocument() ; ASSERT_VALID(pDoc);
// TODO: Здесь добавьте код отображения собственных данных. // TODO: Также нарисуйте все OLE элементы в документе
// Выделите область в произвольном месте. Этот код нужно
// удалить после отображения данных. Выделенная область
// соответствует прямоугольнику, возвращаемому классом
// CContDemoCntrltem, что необходимо для редактирования на месте
// TODO: удалите этот код после создания // окончательного кода отображения данных
if (m_pSelection == NULL) t
POSITION pos = pDoc->GetStartPosition();
mjpSelection = (CContDemoCntrltem*)pDoc->GetNextClientItem(pos);
\
if (mjpSelection != NULL)
m_pSelection->Draw(pDC, CRect(10, 10, 21C, 210));
)
void CContDemoView::OnlnitialUpdate() (
CView: -.OnlnitialUpdate () ;
II TODO: удалите этот код после создания // окончательного кода выделения области m_pSelection = NULL; // инициализируйте выделение
void CContDemoView::OnDestroy() I
// Деактивируйте компонент при удалении.
// Это важно при совместном использовании представления
CView::OnDestroy();
COleClientltem* pActiveltem = GetDocument()->GetInPlaceActiveItem(this); if (pActiveltem != NULL && pActiveItem->GetActiveView() == this) (
pActive!tem->Deactivate();
ASSERT(GetDocument()~>GetInPlaceActiveItem(this) == NULL);
1
111111II111111111111111II1111111111II11111111111J1111111111111111111111 II Поддержка и команды клиента OLE
BOOL CContDemoView::IsSelected(const CObject* pDocItem) const
// Используется, если в выделенной области находятся только
// объекты класса CContDemoCntrltem. Чтобы управлять
//' различными механизмами выделения, замените здесь реализацию
II TODO: реализуйте функцию, проверяющую выбранный // клиентом компонент OLE
return pDocItem == m_pSelection;
void CContDemoView::OnlnsertObject()
{
/'/ Вызов диалогового окна Insert Object для получения // информации о новом объекте класса CContDemoCntrltem
COlelnsertDialog dig; if (dig.DoModal() != IDOK) return;
BeginWaitCurscr() ;
CContDemoCntrltem* pltem = NULL;
TRY
{
// Создайте новый компонент, связанный с этим документом CContDemoDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc);
pltem = new CContDemoCntrltem(pDoc); ASSERT_VALID(pltem);
II Инициализируйте компонент данными из диалогового окна if (!dlg.CreateItem(pItem))
Предыдущая << 1 .. 152 153 154 155 156 157 < 158 > 159 160 161 162 163 164 .. 173 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100