• 大小: 38KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-07
  • 语言: C/C++
  • 标签:

资源简介

移动的球体MFC制作

资源截图

代码片段和文件信息

// AssistantWnd.cpp : implementation file
//

#include “stdafx.h“
#include “C811.h“
#include “AssistantWnd.h“

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

/////////////////////////////////////////////////////////////////////////////
// CAssistantWnd

CAssistantWnd::CAssistantWnd():m_sizeRadius(2020)m_sizeMove(2020)
{
m_clrBall=RGB(25500);
m_sizeTotal.cx = m_sizeRadius.cx*4 + m_sizeMove.cx;
m_sizeTotal.cy = m_sizeRadius.cy*4 + m_sizeMove.cy;
}

CAssistantWnd::CAssistantWnd(CSize szBallRadius CSize szBallMove COLORREF clrBall)
{
m_sizeRadius=szBallRadius;
m_sizeMove=szBallMove;
m_clrBall=clrBall;
m_sizeTotal.cx = m_sizeRadius.cx*4 + m_sizeMove.cx;
m_sizeTotal.cy = m_sizeRadius.cy*4 + m_sizeMove.cy;
}
CAssistantWnd::~CAssistantWnd()
{
}

BEGIN_MESSAGE_MAP(CAssistantWnd CWnd)
//{{AFX_MSG_MAP(CAssistantWnd)
ON_WM_TIMER()
ON_WM_DESTROY()
ON_WM_PAINT()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAssistantWnd message handlers

void CAssistantWnd::OnTimer(UINT nIDEvent) 
{
if (m_bmBall.GetSafeHandle()== NULL)
return;     

CRect rcInnerBorder;
GetClientRect(&rcInnerBorder);

static CPoint ptLocation( rcInnerBorder.left-m_sizeTotal.cx/2-2 //当前移动位置
rcInnerBorder.top-m_sizeTotal.cy/2-2);
static int nStep=0; //标识当前的移动方向
static CSize szMoving(m_sizeMove.cx0); //当前的位移变化

CClientDC dc(this);
CBitmap* pbmOld = NULL;
CDC dcMem;

dcMem.CreateCompatibleDC(&dc);
pbmOld = dcMem.Selectobject(&m_bmBall);

dc.BitBlt(ptLocation.x - m_sizeTotal.cx / 2
ptLocation.y - m_sizeTotal.cy / 2
m_sizeTotal.cx m_sizeTotal.cy
&dcMem 0 0SRCCOPY);
ptLocation += szMoving;

switch(nStep)
{
case 0: //从左向右水平移动
if(ptLocation.x>rcInnerBorder.right+m_sizeTotal.cx/2)
{
szMoving.cx=0;
szMoving.cy=m_sizeMove.cy;
nStep++;
}
break;
case 1: //从上向下垂直移动
if(ptLocation.y>rcInnerBorder.bottom+m_sizeTotal.cy/2)
{
szMoving.cy=0;
szMoving.cx=-m_sizeMove.cy;
nStep++;
}
break;
case 2: //从右向左水平移动
if(ptLocation.x {
szMoving.cx=0;
szMoving.cy=-m_sizeMove.cy;
nStep++;
}
break;
case 3: //从下向上垂直移动
if(ptLocation.y {
szMoving.cy=0;
szMoving.cx=m_sizeMove.cy;
nStep=0;
}
break;
}
dcMem.Selectobject(pbmOld);
dcMem.DeleteDC();

CWnd::OnTimer(nIDEvent);
}

void CAssistantWnd::PrepareBmpBall()
{
if (m_bmBall.GetSafeHandle()!= NULL)
m_bmBall.Deleteobject(); 

CClientDC dc(this);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);

if(!m_bmBall.CreateCompatibleBitmap(&dc m_sizeTotal.cx m_sizeTotal.cy))
return;
ASSERT(m_bmBall.GetSafeHandle()!= NULL);

CBitmap* pOldBitmap = dcMem.Selectobject(&m_bmBall);

CRect rect(0 0 m_sizeTotal.cx m_sizeTotal.cy);
CBr

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2011-05-16 14:57  C811\
     文件        4064  2011-04-23 12:26  C811\AssistantWnd.cpp
     文件        1696  2001-11-05 08:31  C811\AssistantWnd.h
     文件        2166  2011-04-23 12:28  C811\BallThread.cpp
     文件        1393  2001-11-05 00:52  C811\BallThread.h
     文件       20768  2011-04-23 12:07  C811\C811.APS
     文件        1402  2011-05-16 14:57  C811\C811.clw
     文件        2038  2001-11-05 04:41  C811\C811.cpp
     文件        4392  2001-11-05 05:21  C811\C811.dsp
     文件         531  2001-11-04 19:43  C811\C811.dsw
     文件        1302  2001-11-04 19:43  C811\C811.h
     文件       91136  2011-05-16 14:57  C811\C811.ncb
     文件       51712  2011-05-16 14:57  C811\C811.opt
     文件        1404  2011-05-16 14:57  C811\C811.plg
     文件        5171  2001-11-05 05:11  C811\C811.rc
     文件        4974  2001-11-15 20:40  C811\C811Dlg.cpp
     文件        1363  2001-11-05 05:10  C811\C811Dlg.h
     文件        3543  2001-11-04 19:43  C811\ReadMe.txt
     目录           0  2010-11-06 14:53  C811\res\
     文件         728  2001-11-05 05:11  C811\Resource.h
     文件        1078  2001-11-04 19:43  C811\res\C811.ico
     文件         396  2001-11-04 19:43  C811\res\C811.rc2
     文件         206  2001-11-04 19:43  C811\StdAfx.cpp
     文件        1054  2001-11-04 19:43  C811\StdAfx.h

评论

共有 条评论

相关资源