home *** CD-ROM | disk | FTP | other *** search
- //***********************************************************************
- //
- // VistaView.cpp
- //
- //***********************************************************************
-
- #include <afxwin.h>
- #include "VistaDoc.h"
- #include "VistaView.h"
-
- IMPLEMENT_DYNCREATE (CVistaView, CScrollView)
-
- void CVistaView::OnInitialUpdate ()
- {
- CScrollView::OnInitialUpdate ();
-
- CString string;
- CSize sizeTotal;
-
- CBitmap* pBitmap = GetDocument ()->GetBitmap ();
- if (pBitmap != NULL) {
- DIBSECTION ds;
- pBitmap->GetObject (sizeof (DIBSECTION), &ds);
- sizeTotal.cx = ds.dsBm.bmWidth;
- sizeTotal.cy = ds.dsBm.bmHeight;
- string.Format ("%d x %d, %d bpp", ds.dsBm.bmWidth,
- ds.dsBm.bmHeight, ds.dsBmih.biBitCount);
- }
- else {
- sizeTotal.cx = sizeTotal.cy = 0;
- string.Empty ();
- }
-
- AfxGetMainWnd ()->SendMessage (WM_USER, 0,
- (LPARAM) (LPCTSTR) string);
- SetScrollSizes (MM_TEXT, sizeTotal);
- }
-
- void CVistaView::OnDraw (CDC* pDC)
- {
- CVistaDoc* pDoc = GetDocument ();
- CBitmap* pBitmap = pDoc->GetBitmap ();
-
- if (pBitmap != NULL) {
- CPalette* pOldPalette;
- CPalette* pPalette = pDoc->GetPalette ();
-
- if (pPalette != NULL) {
- pOldPalette = pDC->SelectPalette (pPalette, FALSE);
- pDC->RealizePalette ();
- }
-
- DIBSECTION ds;
- pBitmap->GetObject (sizeof (DIBSECTION), &ds);
-
- CDC memDC;
- memDC.CreateCompatibleDC (pDC);
- CBitmap* pOldBitmap = memDC.SelectObject (pBitmap);
-
- pDC->BitBlt (0, 0, ds.dsBm.bmWidth, ds.dsBm.bmHeight, &memDC,
- 0, 0, SRCCOPY);
-
- memDC.SelectObject (pOldBitmap);
-
- if (pPalette != NULL)
- pDC->SelectPalette (pPalette, FALSE);
- }
- }
-