VC6中添加一个SDI工程,在class CMainFrame : public CFrameWnd中添加一个函数,除了这个函数外其它代码都是系统默认的,
void CMainFrame::ChgCurMenu(DWORD dwMenuid)
{
if (m_hMenuDefault)
{
SetMenu(NULL);// 有没有这个语句都会有内存增涨
::DestroyMenu(m_hMenuDefault);
HINSTANCE hInst = AfxGetResourceHandle();
m_hMenuDefault = LoadMenu(hInst, MAKEINTRESOURCE(dwMenuid));
OnUpdateFrameMenu(m_hMenuDefault);
}
}
添加10个不同的菜单,点一次鼠标,依次将这10个菜单换一遍。刚开始几次,内存增涨,点几次之后就看不到明显增涨了。但是,如果把鼠标移动菜单上面,来回移动显示不同的菜单,内存还是会增加。
折腾好几天了,各位帮帮忙,看看到底什么原因。
void CMainFrame::ChgCurMenu(DWORD dwMenuid)
{
if (m_hMenuDefault)
{
SetMenu(NULL);// 有没有这个语句都会有内存增涨
::DestroyMenu(m_hMenuDefault);
HINSTANCE hInst = AfxGetResourceHandle();
m_hMenuDefault = LoadMenu(hInst, MAKEINTRESOURCE(dwMenuid));
OnUpdateFrameMenu(m_hMenuDefault);
}
}
添加10个不同的菜单,点一次鼠标,依次将这10个菜单换一遍。刚开始几次,内存增涨,点几次之后就看不到明显增涨了。但是,如果把鼠标移动菜单上面,来回移动显示不同的菜单,内存还是会增加。
折腾好几天了,各位帮帮忙,看看到底什么原因。
HINSTANCE hInst = AfxGetResourceHandle();
m_hMenuDefault = LoadMenu(hInst, MAKEINTRESOURCE(dwMenuid));
OnUpdateFrameMenu(m_hMenuDefault);
重复调用并没有发现内存增加,楼主可能是其他地方出的问题。
http://dl5.csdn.net/fd.php?i=625443914039685&s=4a695547240295ad454ba2391c1fdf57