www.pudn.com > Load.rar > LoadView.cpp


// LoadView.cpp : implementation of the CLoadView class 
// 
 
#include "stdafx.h" 
#include "Load.h" 
 
#include "LoadDoc.h" 
#include "LoadView.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CLoadView 
 
IMPLEMENT_DYNCREATE(CLoadView, CView) 
 
BEGIN_MESSAGE_MAP(CLoadView, CView) 
	//{{AFX_MSG_MAP(CLoadView) 
	ON_WM_PAINT() 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CLoadView construction/destruction 
 
CLoadView::CLoadView() 
{ 
	// TODO: add construction code here 
 
} 
 
CLoadView::~CLoadView() 
{ 
} 
 
BOOL CLoadView::PreCreateWindow(CREATESTRUCT& cs) 
{ 
	// TODO: Modify the Window class or styles here by modifying 
	//  the CREATESTRUCT cs 
	Filename=_T(""); 
	 
	return CView::PreCreateWindow(cs); 
} 
 
///////////////////////////////////////////////////////////////////////////// 
// CLoadView drawing 
 
void CLoadView::OnDraw(CDC* pDC) 
{ 
	CLoadDoc* pDoc = GetDocument(); 
	ASSERT_VALID(pDoc); 
 
	// TODO: add draw code for native data here 
	if(Filename!="") 
	{ 
		CBitmap bitmap; 
		 
		bitmap.Attach(SHLoadImageFile(Filename)); 
		BITMAP bmpInfo; 
		 
		bitmap.GetBitmap(&bmpInfo); 
		CDC bitmapDC; 
		 
		bitmapDC.CreateCompatibleDC(pDC); 
		CBitmap* pOldBitmap = bitmapDC.SelectObject(&bitmap); 
		 
		pDC->BitBlt(0,0,bmpInfo.bmWidth,bmpInfo.bmHeight,&bitmapDC,0,0,SRCCOPY);	 
		bitmapDC.SelectObject(pOldBitmap); 
		bitmap.DeleteObject(); 
	} 
		 
} 
 
///////////////////////////////////////////////////////////////////////////// 
// CLoadView diagnostics 
 
#ifdef _DEBUG 
void CLoadView::AssertValid() const 
{ 
	CView::AssertValid(); 
} 
 
void CLoadView::Dump(CDumpContext& dc) const 
{ 
	CView::Dump(dc); 
} 
 
CLoadDoc* CLoadView::GetDocument() // non-debug version is inline 
{ 
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CLoadDoc))); 
	return (CLoadDoc*)m_pDocument; 
} 
#endif //_DEBUG 
 
///////////////////////////////////////////////////////////////////////////// 
// CLoadView message handlers 
 
 
void CLoadView::OnPaint()  
{ 
	CPaintDC dc(this); // device context for painting 
	 
	// TODO: Add your message handler code here 
	//得到文档指针 
	CLoadDoc* pDoc = GetDocument(); 
	ASSERT_VALID(pDoc); 
 
	//是否已打开某个BMP文件 
	if(pDoc->flag==1) 
	{ 
		//指定是显示的颜色 
		SetDIBitsToDevice(dc.m_hDC,0,0,pDoc->pbi->bmiHeader.biWidth, 
			pDoc->pbi->bmiHeader.biHeight,0,0,0, 
			pDoc->pbi->bmiHeader.biHeight,pDoc->lpshowbuf,  
			pDoc->pbi,DIB_RGB_COLORS);    
	} 
	// Do not call CView::OnPaint() for painting messages 
}