飞机大战中的MFC笔记

1、设置窗体的标题,可以在PlaneWarDoc.cpp文件的OnNewDocument()中设置

BOOL CPlaneWarDoc::OnNewDocument()
{
	if (!CDocument::OnNewDocument())
		return FALSE;

	// TODO: 在此添加重新初始化代码
	// (SDI 文档将重用该文档)
	SetTitle(TEXT("我的飞机大战软件"));
	return TRUE;
}

或者在PlaneWar.cpp中 CPlaneWarApp::InitInstance()中添加

m_pMainWnd->SetWindowText(_T("飞机大战"));

优先级,后者大于前者

2、添加菜单

添加右键菜单,在右键点击事件中,加入菜单

void CMFCApplication2Dlg::OnRButtonDown(UINT nFlags, CPoint point)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	CMenu m_Menu;
	CMenu* pMenu;
	CRect rect;
	ClientToScreen(&point);//将显示中的给定点坐标转换为屏幕坐标
	m_Menu.LoadMenu(IDR_RightMENU1);//加载菜单资源
	pMenu = m_Menu.GetSubMenu(0);//获取菜单句柄
	rect.top = point.x; rect.left = point.y;
	pMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, rect.top, rect.left, this, &rect);//显示弹出菜单
	CDialogEx::OnRButtonDown(nFlags, point);//调用基类的方法
	//DestroyMenu(m_Menu);
}

菜单栏添加菜单

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != nullptr)
	{
		BOOL bNameValid;
		CString strAboutMenu;
		bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
		ASSERT(bNameValid);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

 

3、去掉菜单

在MainFrame中添加SetMenu(NULL)即可

4、定时器,在类视图中给特定的对象添加定时器消息OnTimer,启动定时器就需要使用CWnd类的成员函数SetTimer。

所以在CView中添加    SetTimer(1, 17, NULL);//刷新界面定时器

5、加载图像,使用ImageList对象

CBitmap me;//升级战机图像
	if (!me.LoadBitmapW(IDB_BMP_ME))
		return FALSE;
	CBitmap me1;//未升级战机图像
	if (!me1.LoadBitmapW(IDB_BMP_ME1))
		return FALSE;
	//创建CImageList对象
	if (!images.Create(PLANE_WIDTH, PLANE_HEIGHT, ILC_COLOR24 | ILC_MASK, 14, 0))//nInitial初始个数
		return FALSE;//cx,cy 图片的宽度
	if (!images1.Create(PLANE1_WIDTH, PLANE1_HEIGHT, ILC_COLOR24 | ILC_MASK, 4, 0))//nInitial初始个数
		return FALSE;//cx,cy 图片的宽度

	//图像链表中加入对象对应的图标对象,之后直接通过该链表访问图标对象
	images.Add(&me, RGB(0,0,0));

	images1.Add(&me1, RGB(0, 0, 0));

 

6、关闭窗口,退出程序

DestroyWindow();或

exit(0);

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值