multimoveframe.cpp

来自「实现的是在物理碰撞」· C++ 代码 · 共 107 行

CPP
107
字号
// MultiMoveFrame.cpp : implementation file
//

//NOTE THAT   !!!!!!!!!!!!!!!
//#include <new>

#include "stdafx.h"
#include "resource.h"
#include "MultiMoveFrame.h"

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

/////////////////////////////////////////////////////////////////////////////
// CMultiMoveFrame

IMPLEMENT_DYNCREATE(CMultiMoveFrame, CFrameWnd)

CMultiMoveFrame::CMultiMoveFrame()
{
	Create(NULL, "MultiMove");
	CClientDC dc(this);
	mdc = new CDC;
	mdc->CreateCompatibleDC(&dc);

	bmp1 = new CBitmap;
	bmp2 = new CBitmap;
	bmp3 = new CBitmap;

	bmp1->m_hObject = (HBITMAP)::LoadImage(NULL, "C1.bmp",
		IMAGE_BITMAP, 200, 60, LR_LOADFROMFILE);

	bmp2->m_hObject = (HBITMAP)::LoadImage(NULL, "C2.bmp",
		IMAGE_BITMAP, 200, 120, LR_LOADFROMFILE);

	bmp3->m_hObject = (HBITMAP)::LoadImage(NULL, "C3.bmp",
		IMAGE_BITMAP, 80, 120, LR_LOADFROMFILE);

	x1 = -70, y1 =200, v1 = 5;
	x2 = 520, y2 = 150, v2 = 0;
}

CMultiMoveFrame::~CMultiMoveFrame()
{
	delete bmp1;
	delete bmp2;
	delete bmp3;
	delete mdc;
}


BEGIN_MESSAGE_MAP(CMultiMoveFrame, CFrameWnd)
	//{{AFX_MSG_MAP(CMultiMoveFrame)
	ON_WM_CREATE()
	ON_WM_TIMER()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMultiMoveFrame message handlers

int CMultiMoveFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	// TODO: Add your specialized creation code here
	SetTimer(1, 50, NULL);
	
	return 0;
}

void CMultiMoveFrame::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	CClientDC dc(this);
	mdc->SelectObject(bmp1);
	dc.BitBlt(x1, y1, 200, 60,
		mdc, 0, 0, SRCCOPY);

 	mdc->SelectObject(bmp2);
	dc.BitBlt(x2, y2, 200, 120,
		mdc, 0, 0, SRCCOPY);


	if(x1 + 200 > x2)
	{
		mdc->SelectObject(bmp3);

		dc.BitBlt(x1 + 160, y1, 80, 60,
			mdc, 0, 60, SRCPAINT);

		dc.BitBlt(x1 + 160, y1, 80, 60,
			mdc, 0, 0, SRCAND);

		KillTimer(1);
	}


	x1 += v1;
	x2 += v2;
	CFrameWnd::OnTimer(nIDEvent);
}

⌨️ 快捷键说明

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