在MFC中,CMFCMenuBar会写入注册表,每次启动时会读取,这给我们编制程序带来极大的不便。
我在网上看了很多方法,大部分都是要在注册表中删除才能解决问题。
这肯定不是正确的方法。
经研究发现,如下代码可解决此类问题
#pragma once
class XMenuBar : public CMFCMenuBar
{
public:
XMenuBar();
virtual ~XMenuBar();
virtual BOOL SaveState(LPCTSTR lpszProfileName = NULL, int nIndex = -1, UINT uiID = (UINT)-1);
};
BOOL XMenuBar::SaveState(LPCTSTR lpszProfileName , int nIndex , UINT uiID)
{
return TRUE;
}
就是重写SaveState,让其不要写入注册表。