⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 moon.cpp

📁 程序开始运行时显示一电视机屏幕
💻 CPP
字号:
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
//  嗨!我是王晓钰。
//  我的E-mail是:XiaoYu.wang@263.net  有问题可以发邮件或在网站上留言
//  欢迎你访问我的个人主页:“笑语小园”http://xiaoyu.2699.comn
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
//  二○○○年七月
//  让我们继续看我的程序。
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
#include <afxwin.h>
#include "resource.h"
// 框架窗口类
class CMyWnd: public CFrameWnd
{
	CRect	m_rectCake;
public:
	CBitmap m_Bitmap[8];
	int m_nflag;
	CMyWnd();
	BOOL PreCreateWindow(CREATESTRUCT &cs);
protected:
	afx_msg void OnPaint();
	afx_msg void OnTimer(UINT nIDEvent);
	afx_msg void OnDestroy();
	afx_msg void OnStart();
	afx_msg void OnEnd();
	afx_msg	void OnExit();
	DECLARE_MESSAGE_MAP()
private:
	int m_nWidth;
	int m_nHeight;
	//CRect m_rectMoon;
	int m_nindex;
};
// 消息映射
BEGIN_MESSAGE_MAP(CMyWnd,CFrameWnd)
ON_WM_PAINT()
ON_WM_TIMER()
ON_WM_DESTROY()
ON_COMMAND(ID_START,OnStart)
ON_COMMAND(ID_END,OnEnd)
ON_COMMAND(ID_EXIT,OnExit)
END_MESSAGE_MAP()
// 框架窗口类的成员函数
BOOL CMyWnd::PreCreateWindow(CREATESTRUCT &cs)
{
	cs.hMenu=LoadMenu(NULL,MAKEINTRESOURCE(IDR_MAINMENU));
	return CFrameWnd::PreCreateWindow(cs);
}
void CMyWnd::OnExit()
{	
}
CMyWnd::CMyWnd()
{
	m_rectCake = CRect(100,80,140,120);
	m_nflag=1;
	m_nindex=0;
	m_Bitmap[0].LoadBitmap(IDB_BITMAP1);
	m_Bitmap[1].LoadBitmap(IDB_BITMAP2);
	m_Bitmap[2].LoadBitmap(IDB_BITMAP3);
	m_Bitmap[3].LoadBitmap(IDB_BITMAP4);
	m_Bitmap[4].LoadBitmap(IDB_BITMAP5);
	m_Bitmap[5].LoadBitmap(IDB_BITMAP6);
	m_Bitmap[6].LoadBitmap(IDB_BITMAP7);
	m_Bitmap[7].LoadBitmap(IDB_BITMAP8);
	BITMAP BM;
	m_Bitmap[0].GetBitmap(&BM);
	m_nWidth=BM.bmWidth;
	m_nHeight=BM.bmHeight;
}
void CMyWnd::OnPaint()
{
	CPaintDC dc(this);
	/*
	CRect rectClient;
	GetClientRect(&rectClient);
	dc.SelectStockObject(DKGRAY_BRUSH);
	dc.Rectangle(&rectClient);
	*/
	CDC MemDC;
	MemDC.CreateCompatibleDC(NULL);
	switch(this->m_nindex)
	{
	case 0:
		MemDC.SelectObject(&m_Bitmap[0]);
		break;
	case 1:
		MemDC.SelectObject(&m_Bitmap[1]);
		break;
	case 2:
		MemDC.SelectObject(&m_Bitmap[2]);
		break;
	case 3:
		MemDC.SelectObject(&m_Bitmap[3]);
		break;
	case 4:
		MemDC.SelectObject(&m_Bitmap[4]);
		break;
	case 5:
		MemDC.SelectObject(&m_Bitmap[5]);
		break;
	case 6:
		MemDC.SelectObject(&m_Bitmap[6]);
		break;
	case 7:
		MemDC.SelectObject(&m_Bitmap[7]);
	}
	dc.BitBlt(m_rectCake.left,m_rectCake.top,m_nWidth,m_nHeight,&MemDC,0,0,SRCAND);

}
void CMyWnd::OnTimer(UINT nIDEvent)		// 定时更新数据
{
	CRect rectClient;
	GetClientRect(&rectClient);
	InvalidateRect(m_rectCake);
	switch(this->m_nflag)
	{
	case 0:
		this->m_rectCake+=CPoint(-10,-10);
		if(this->m_rectCake.left<=0)m_nflag=1;
		if(this->m_rectCake.top<=0)m_nflag=3;
		break;
	case 1:
		this->m_rectCake+=CPoint(10,-10);
		if(this->m_rectCake.right>=rectClient.right)m_nflag=0;
		if(this->m_rectCake.top<=0)m_nflag=2;
		break;
	case 2:
		this->m_rectCake+=CPoint(10,10);
		if(this->m_rectCake.right>=rectClient.right)m_nflag=3;
		if(this->m_rectCake.bottom>=rectClient.bottom)m_nflag=1;
		break;
	case 3:
		this->m_rectCake+=CPoint(-10,10);
		if(this->m_rectCake.left<=0)m_nflag=2;
		if(this->m_rectCake.bottom>=rectClient.bottom)m_nflag=0;
		break;
	}
	m_nindex++;
	if(m_nindex==8)m_nindex=0;
	TRACE("\nm_nindex=%d",this->m_nindex);
	InvalidateRect(m_rectCake);
}
void CMyWnd::OnDestroy()				// 解除定时器
{
	//KillTimer(1);
}
void CMyWnd::OnStart()
{
	this->SetTimer(1, 50, NULL);		// 设置定时器
}
void CMyWnd::OnEnd()
{
	KillTimer(1);
}
// 应用程序类
class CMyTimerApp: public CWinApp
{
public:
	BOOL	InitInstance();
};
// 应用窗口类的成员函数
BOOL CMyTimerApp::InitInstance()
{
	CMyWnd *pFrame = new CMyWnd;
	pFrame->Create(0,_T("滚皮球"));
	pFrame->ShowWindow(m_nCmdShow);
	pFrame->UpdateWindow(); 
	//pFrame->SetTimer(1, 100, NULL);		// 设置定时器
	this->m_pMainWnd = pFrame;
	return TRUE;
}
CMyTimerApp ThisApp;

⌨️ 快捷键说明

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