imgreviewview.cpp

来自「Resource editor base speadrum Chinese mo」· C++ 代码 · 共 115 行

CPP
115
字号
// PicReviewView.cpp : implementation file
//

#include "stdafx.h"
#include "resourceeditor.h"
#include "ImgReviewView.h"

#include "DirFileInfo.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CImgReviewView

IMPLEMENT_DYNCREATE(CImgReviewView, CScrollView)

CImgReviewView::CImgReviewView()
{
    m_hBmp = NULL;
}

CImgReviewView::~CImgReviewView()
{
}


BEGIN_MESSAGE_MAP(CImgReviewView, CScrollView)
	//{{AFX_MSG_MAP(CImgReviewView)
		// NOTE - the ClassWizard will add and remove mapping macros here.
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CImgReviewView drawing

void CImgReviewView::OnDraw(CDC* pDC)
{
	//CDocument* pDoc = GetDocument();
	// TODO: add draw code here
    if( NULL != m_hBmp )
    {
        BITMAP bmpInfo;
        VERIFY( ::GetObject(m_hBmp, sizeof(BITMAP), &bmpInfo) );

        CDC memDC;
        VERIFY( memDC.CreateCompatibleDC(pDC) );
        HGDIOBJ hOld = ::SelectObject(memDC.m_hDC, m_hBmp);

        pDC->BitBlt(20, 20, bmpInfo.bmWidth, bmpInfo.bmHeight, &memDC, 0, 0, SRCCOPY);

        memDC.SelectObject(hOld);

        memDC.DeleteDC();
    }
}

void CImgReviewView::OnInitialUpdate()
{
	CScrollView::OnInitialUpdate();

	CSize sizeTotal;
	// TODO: calculate the total size of this view
	sizeTotal.cx = sizeTotal.cy = 300;
	SetScrollSizes(MM_TEXT, sizeTotal);
}
/////////////////////////////////////////////////////////////////////////////
// CImgReviewView diagnostics

#ifdef _DEBUG
void CImgReviewView::AssertValid() const
{
	CScrollView::AssertValid();
}

void CImgReviewView::Dump(CDumpContext& dc) const
{
	CScrollView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CImgReviewView message handlers

void CImgReviewView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint) 
{
	// TODO: Add your specialized code here and/or call the base class
	if( pSender != this && lHint == WM_CHANGE_SEL_ITEM )
    {
        CHANGE_SEL_DATA * pSelData = (CHANGE_SEL_DATA *)pHint;
        if( pSelData != NULL )
        {
            m_hBmp = pSelData->hBmp;
            BITMAP bmpInfo = { 0 };
            
            if( m_hBmp != NULL )
                GetObject(m_hBmp, sizeof(BITMAP), &bmpInfo);
            
            CSize sizeTotal;
            sizeTotal.cx = bmpInfo.bmWidth + 60;
            sizeTotal.cy = bmpInfo.bmHeight + 40;
            SetScrollSizes(MM_TEXT, sizeTotal);

            Invalidate( pSelData->bFreshBg );
        }
        else
        {
            Invalidate( TRUE );
        }
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?