博客日历
2025年08月 | ||||||
一 | 二 | 三 | 四 | 五 | 六 | 七 |
28 | 29 | 30 | 31 | 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
存档
2025年03月 2024年
03月 04月 05月 2021年
01月 02月 11月 12月 2020年
02月 03月 04月 05月 06月 07月
09月 2018年
09月 2017年
01月 02月 07月 2016年
01月 04月 07月 08月 11月 12月
2015年
01月 02月 03月 05月 09月 10月
11月 2014年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2013年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2012年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2011年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2010年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2009年
03月 04月 05月 06月 07月 08月
09月 10月 11月 12月
在MFC中用WriteProfileInt等方法保存应用程序配置
0.简介
CWinApp类中提供了一组用于读写应用程序配置的方法:
GetProfileInt
WriteProfileInt
GetProfileString
WriteProfileString
可方便的用于读写应用程序配置。
1.关于CWinApp::SetRegistryKey方法
用VC++的向导建立MFC项目之后,在InitInstance中可以看到这样的语句:
SetRegistryKey(_T("应用程序向导生成的本地应用程序"));
该函数将为以上提到的几个方法建立工作环境,此时如果用WriteProfileInt写入数据,将会
被写入到如下注册表位置:
HKEY_CURRENT_USER\Software\应用程序向导生成的本地应用程序\应用程序名称\
如果在InitInstance中不执行SetRegistryKey,则用WriteProfileInt写入数据时,将写入到
%windir%\应用程序名称.ini中。
2.用法
a.如果在InitInstance中执行了SetRegistryKey("清风居");
则对于:
WriteProfileInt("section","val1",10);
将在注册表中如下路径写入数据:
[HKEY_CURRENT_USER\Software\清风居\测试应用程序\section]
"val1"=dword:0000000a
注:“测试应用程序”是应用程序的名称。
b.如果在InitInstance中没执行SetRegistryKey
则对于:
WriteProfileInt("section","val1",10);
将在“%windir%\测试应用程序.ini”中写入:
[section]
val1=10
3.实例:保存应用程序的窗口大小和位置
//改变大小时
void CMyDlg::OnSize(UINT nType, int cx, int cy)
if (m_bInitDialog && cx<nX && cy<nY)
{
//保存当前大小位置
CRect rcWindow;
GetWindowRect(&rcWindow);
theApp.WriteProfileInt("Settings","left",rcWindow.left);
theApp.WriteProfileInt("Settings","top",rcWindow.top);
theApp.WriteProfileInt("Settings","right",rcWindow.right);
theApp.WriteProfileInt("Settings","bottom",rcWindow.bottom);
}
//移动窗口时
void CMyDlg::OnMove(int x, int y)
{
if (m_bInitDialog && x!=0 && y!=0)
{
//保存当前大小位置
CRect rcWindow;
GetWindowRect(&rcWindow);
theApp.WriteProfileInt("Settings","left",rcWindow.left);
theApp.WriteProfileInt("Settings","top",rcWindow.top);
theApp.WriteProfileInt("Settings","right",rcWindow.right);
theApp.WriteProfileInt("Settings","bottom",rcWindow.bottom);
}
}
//初始化
BOOL CMyDlg::OnInitDialog()
{
CRect rcWindow;
rcWindow.left=theApp.GetProfileInt("Settings","left",200);
rcWindow.top=theApp.GetProfileInt("Settings","top",120);
rcWindow.right=theApp.GetProfileInt("Settings","right",800);
rcWindow.bottom=theApp.GetProfileInt("Settings","bottom",600);
MoveWindow(&rcWindow);
}
上一篇: 限制OnSize范围的方法
下一篇: CMap中用CString做key
分类:Win32/C++ 查看次数:11680 发布时间:2009/6/11 23:04:41