MFC 全局配置 读取保存配置

不知道关于全局配置别人都是怎么处理的,最近做的东西都用到全局配置,而且要保存软件的设置,下次启动时要使用上次关闭时的配置。

我的做法是建一个类用来保存和读取配置,并且在这个类中创建一些变量,供所有的界面类,处理类使用。

例如这个类的名字

CGloableConfig 

做个比方,比如我在好多对话框或处理类中都用到一个变量,

CString strLLow;

这个变量在软件启动的时候需要从配置文件中读出,并在关闭软件是保存,在某个对话框中这个此值的大小,在某个处理类中需要知道此值的大小。

全局配置配置的类,在CMainFrame中定义一个对象,当然这是对于多文档程序来讲,对于单文档的或对话框的话就在主view中定义。

CGloableConfig  gloablecfg;

在这个CGloableConfig中有个初始化函数,一个退出时的保存函数。

void CGloableConfig::Init(CString strFile)

void CGloableConfig::SaveConfig(CString strFile)

这里使用INI文件作为配置文件,在软件启动的时候调用Init函数读取值,


GetPrivateProfileString("Panding","LLow","Odd",charTemp,20,strFile);
strLLow.Format("%s",charTemp);

在退出的时候调用SaveConfig保存值

WritePrivateProfileString("Panding","LLow",strLLow,strFile);

 

在设置此值的对话框中,可以修改这个值,首先获取主窗口的指针

CMainFrame* pMainFrame = (CMainFrame*)AfxGetMainWnd();

pMainFrame->gloablecfg.strLLow = “12345”;

如果是单文档的,获取主View的指针

CBrightnessMeasureView * pMainView = (CBrightnessMeasureView*)((CFrameWnd*)AfxGetApp()->m_pMainWnd)->GetActiveView();

pMainView->gloablecfg.strLLow = “12345”;

 

在使用的此值的时候,一样要获取主窗口或主View的指针,然后获取gloablecfg,才能正常使用。

posted @ 2014-11-05 11:44  没烟抽的寂寞  阅读(1202)  评论(0编辑  收藏  举报