怎么禁止mfc生成的多文档程序,老是自动显示当前的所有窗口这一功能!
请问vc6.0生成的多文档程序,老是有个“窗口”的菜单项,下面有最小化所有窗口什么之类的功能,而且下面老是显示当前所有打开的子窗口,并把当前子窗口打对勾,可是我不想要,把...
请问vc6.0 生成的多文档程序,老是有个“窗口”的菜单项,下面有最小化所有窗口什么之类的功能,而且下面老是显示当前所有打开的子窗口,并把当前子窗口打对勾,可是我不想要,把这个窗口项整个删除了,就会导致在我自己的新菜单下面,自动显示所有打开的子窗口,更难看,郁闷!请帮忙指点!
最好能删除,不能删除的话,能不能让它显示在指定的菜单下,而不是自己老是跑到倒数第二个菜单项的最下面 展开
最好能删除,不能删除的话,能不能让它显示在指定的菜单下,而不是自己老是跑到倒数第二个菜单项的最下面 展开
6个回答
展开全部
凡动态分配了存储单元的变量,一旦不用,就要释放。
例如动态数组,不管用new,还是 malloc分配的。就要 delete 或 free. 这点,你会注意的。
但MFC程序有些地方 动态分配存储单元 对程序员来说,不能“明显看出”。 由于MFC程序是事件驱动程序,有许多子程序(函数)是不断循环执行的。这些 不能“明显看出”的 动态分配,正因为不会自动释放, 才会引起泄漏。
例如 CView OnDraw()里,如果你 建了一个 font, "画" 完字,不用了,就要释放。
CFont font;
font.CreateFontIndirect(&lf); // 这个过程隐含了分配
....
DeleteObject(font); // 不用了,就要释放
例如, 调色盘
LOGPALETTE *pLP = (LOGPALETTE *) new BYTE[nSize];
....
delete[] pLP; // 不用了,就要释放
例如, 句柄
HANDLE hDIB = DDBToDIB( bitmap, BI_RGB, &pal ); // 这个过程隐含了分配
....
GlobalFree( hDIB ); // 不用了,就要释放
MFC程序比较复杂,你的泄漏是怎样引起的,要自己查找。上次有位提问的朋友,就是 CFont font; 泄漏,没找到毛病所在,觉得复杂,找到了,觉得如此简单。
例如动态数组,不管用new,还是 malloc分配的。就要 delete 或 free. 这点,你会注意的。
但MFC程序有些地方 动态分配存储单元 对程序员来说,不能“明显看出”。 由于MFC程序是事件驱动程序,有许多子程序(函数)是不断循环执行的。这些 不能“明显看出”的 动态分配,正因为不会自动释放, 才会引起泄漏。
例如 CView OnDraw()里,如果你 建了一个 font, "画" 完字,不用了,就要释放。
CFont font;
font.CreateFontIndirect(&lf); // 这个过程隐含了分配
....
DeleteObject(font); // 不用了,就要释放
例如, 调色盘
LOGPALETTE *pLP = (LOGPALETTE *) new BYTE[nSize];
....
delete[] pLP; // 不用了,就要释放
例如, 句柄
HANDLE hDIB = DDBToDIB( bitmap, BI_RGB, &pal ); // 这个过程隐含了分配
....
GlobalFree( hDIB ); // 不用了,就要释放
MFC程序比较复杂,你的泄漏是怎样引起的,要自己查找。上次有位提问的朋友,就是 CFont font; 泄漏,没找到毛病所在,觉得复杂,找到了,觉得如此简单。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有一个方法,在app文件的InitInstance()函数中加入LoadStdProfileSettings(0),来禁止MRU,我一般是直接将这个函数注释掉的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以在 MDI 模板的时候加载自己的菜单。。 例如
pDocTemplate1 = new CMultiDocTemplate(
IDR_SHOPSYTYPE,// 这点可以换上你自己菜单
RUNTIME_CLASS(CShopSystemDoc),
RUNTIME_CLASS(CChildFrame), // custom MDI child frame
RUNTIME_CLASS(CProductSellView));
AddDocTemplate(pDocTemplate1);
当然,你可以自己创建自己的菜单。。
不知道我理解错你的问题没有 .
pDocTemplate1 = new CMultiDocTemplate(
IDR_SHOPSYTYPE,// 这点可以换上你自己菜单
RUNTIME_CLASS(CShopSystemDoc),
RUNTIME_CLASS(CChildFrame), // custom MDI child frame
RUNTIME_CLASS(CProductSellView));
AddDocTemplate(pDocTemplate1);
当然,你可以自己创建自己的菜单。。
不知道我理解错你的问题没有 .
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
打开资源文件,找到相应的菜单资源,自己编辑
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询