在MFC的CWinApp类的启动成员函数中,会有一个SetRegistryKey函数,在注册表中为程序设置一个主键。配合WriteProfileInt等函数,对程序的配置文件进行读写。
1
2
3
4
5
|
SetRegistryKey(_T(
""
));
//有这句,读写将会针对INI文件进行
//指定自己的INI文件名,否则编译器将以程序名称命名INI文件
free
((
LPTSTR
)theApp.m_pszProfileName);
theApp.m_pszProfileName = (
LPCTSTR
)
malloc
(256);
_tcscpy ((
LPTSTR
)theApp.m_pszProfileName ,_T(
"ScaleWeight"
));
|
写入配置文件信息,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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();
}
|
读取配置文件信息,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
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
}
|
本文转自Chinayu201451CTO博客,原文链接:http://blog.51cto.com/9233403/1970601
,如需转载请自行联系原作者