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);