一、添加标题
方法1:在doc类中找到OnNewDocument这个函数,然后添加你想设置的标题,如下:
方法2:在CMainFrame中进行更改,如下所示:
二、屏蔽工具栏
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
注释掉所有工具条相关的内容即可
三、屏蔽菜单栏
手动删除所有菜单项,添加一个删除所有菜单项的函数。具体为:
先在MainFrm.h中添加函数声明(在类 CMainFrame 的声明之外)
//手动屏蔽掉主菜单项
static void DelAllMenu(HMENU hMenu);
然后再在对应的源文件MainFrm.cpp中添加这个函数的定义:
/* * 删除所有的菜单栏 * * 删除窗口的所有菜单栏 * */ static void DelAllMenu(HMENU hMenu) { // 首先删除多余的菜单项 int Menucount = GetMenuItemCount(hMenu); for (int i = Menucount-1;i>-1;i--) { ::DeleteMenu(hMenu,i, MF_BYPOSITION); } }
最后就是调用这个函数,在函数 int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
中添加下面的代码:
CMenu *pMenu = GetMenu(); if (NULL!=pMenu) { DelAllMenu(pMenu->GetSafeHmenu()); }
运行后,单文档程序将不会再显示菜单栏。
三、MFC SDI主窗口大小位置设定
在XXX.cpp中的函数 InitInstance()添加下面的代码:
//add by shufac 改变窗口的大小和位置
CRect rect; HWND hWnd=GetDesktopWindow();//取得桌面窗口的句柄 GetWindowRect(hWnd,&rect);//设置矩形对象参数 //设置框架窗口的显示位置和大小 m_pMainWnd->MoveWindow(rect.left+200,rect.top+100,rect.Width()*2/3,rect.Height()*3/4,TRUE); //this->MoveWindow(rect.left/*+100*/,rect.top/*+100*/,rect.Width()/2,rect.Height()/2,TRUE); // this->MoveWindow(rect.left,rect.top,rect.Width()/2,rect.Height()/2,TRUE); // this->MoveWindow(0,0,600,600,TRUE);//设置窗口的位置和大小
四、为给定的区域添加背景
以俄罗斯方块游戏的游戏区添加绿色的背景为例,代码如下,详情见注释。
//获取主窗口的大小 CRect rect; GetWindowRect(&rect); //游戏区域绘制 背景及其他 CPen pen_gamearea; CPen*myoldpen_gamearea; //创建蓝色的画笔 pen_gamearea.CreatePen(PS_SOLID,3,RGB(0,0,255)); myoldpen_gamearea=pDC->SelectObject(&pen_gamearea); pDC->MoveTo(0,rect.Height()-20);//到左下顶点 左侧边线和左边框重合 不绘制边线 pDC->LineTo(rect.Width()*2/3,rect.Height()-20); //底部边线 pDC->LineTo(rect.Width()*2/3,51); //右部边线 //方块游戏区域 CRect rect_gamearea(0,50,rect.Width()*2/3,rect.Height()-20); CBrush mybrush_gamearea; //创建画刷 绿色 mybrush_gamearea.CreateSolidBrush(RGB(0,222,0)); //绘制背景 pDC->FillRect(rect_gamearea,&mybrush_gamearea); pDC->SelectObject(myoldpen_gamearea); //底部的空白部分添加背景bottom //底部区域 int i=rect.Height()-20; //CRect的四个参数分别为 l t r b CRect rect_bottomarea(0,rect.Height()-20,rect.Width(),rect.Height()); CBrush mybrush_bottomarea; //创建画刷 mybrush_bottomarea.CreateSolidBrush(RGB(200,222,0)); //绘制背景 pDC->FillRect(rect_bottomarea,&mybrush_bottomarea);
五、设置标题栏图标:
在CMainFrame中的OnCreate()函数中添加如下代码:
其中IDI_ICON_APP是首先需要载入的资源ID。
其他内容待完善