在MFC的CWinApp类的启动成员函数中,会有一个SetRegistryKey函数,在注册表中为程序设置一个主键。配合WriteProfileInt等函数,对程序的配置文件进行读写。
SetRegistryKey(_T(""));//有这句,读写将会针对INI文件进行 //指定自己的INI文件名,否则编译器将以程序名称命名INI文件 free((LPTSTR)theApp.m_pszProfileName); theApp.m_pszProfileName = (LPCTSTR)malloc(256); _tcscpy ((LPTSTR)theApp.m_pszProfileName ,_T("ScaleWeight"));
写入配置文件信息,如下:
void SecondDig::OnCancel() { CRect rect; GetWindowRect(&rect); theApp.WriteProfileInt(_T("InitData"),_T("left"),rect.left); theApp.WriteProfileInt(_T("InitData"),_T("top"),rect.top); theApp.WriteProfileInt(_T("InitData"),_T("right"),rect.right); theApp.WriteProfileInt(_T("InitData"),_T("bottom"),rect.bottom); //AfxMessageBox(_T("cancel")); //DestroyWindow(); CDialogEx::OnCancel(); }
读取配置文件信息,如下:
BOOL SecondDig::OnInitDialog() { CDialogEx::OnInitDialog(); CRect rect; int left = theApp.GetProfileInt(_T("InitData"),_T("left"),0); int top = theApp.GetProfileInt(_T("InitData"),_T("top"),0); int right = theApp.GetProfileInt(_T("InitData"),_T("right"),0); int bottom = theApp.GetProfileInt(_T("InitData"),_T("bottom"),0); rect.left = left; rect.top = top; rect.right = right; rect.bottom = bottom; this->MoveWindow(&rect,true); return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE }
原文地址:http://9233403.blog.51cto.com/9223403/1970601