WriteProfileInt使用方法级目录问题

要在指定的.ini 文件中写入则是 WritePrivateProfileInt

95/98写入WIN.INI,NT/2000/XP写入注册表

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

文件位置在windows目录下:

C:\windows\你的程序名称.INI

 

这段代码是在应用程序的主窗口类 `CMainFrame` 中的 `OnClose` 函数中执行的。让我逐行解释: - `BOOL fClose = TRUE;`:定义一个布尔变量 `fClose`,初始化为 `TRUE`,用于记录是否可以关闭窗口。 - `BOOL bidon;`:定义一个布尔变量 `bidon`,用于接收 `MDIGetActive` 函数的返回值。 - `CMyMDIChildWnd* pChildWnd;`:定义一个指向 `CMyMDIChildWnd` 类的指针变量 `pChildWnd`,用于遍历活动的 MDI 子窗口。 - `while ((pChildWnd = (CMyMDIChildWnd*) MDIGetActive(&bidon)) != 0)`:循环遍历活动的 MDI 子窗口,直到没有子窗口为止。`MDIGetActive` 函数返回活动的 MDI 子窗口,并将结果保存在 `pChildWnd` 中。 - `MDINext();`:将下一个 MDI 子窗口设置为活动窗口。 - `if (!pChildWnd->Close())`:调用子窗口的 `Close` 函数,如果关闭操作失败,则将 `fClose` 设置为 `FALSE`。 - `if (fClose)`:如果可以关闭窗口,则执行以下代码块: - `CRect wndRect; GetWindowRect(&wndRect);`:获取主窗口的位置和大小。 - `CDemoApp* pApp = (CDemoApp*) AfxGetApp();`:获取应用程序对象的指针。 - `pApp->WriteProfileInt("MainWindow", "Left", wndRect.left);`:将主窗口的左边位置写入配置文件。 - `pApp->WriteProfileInt("MainWindow", "Top", wndRect.top);`:将主窗口的上边位置写入配置文件。 - `pApp->WriteProfileInt("MainWindow", "Right", wndRect.right);`:将主窗口的右边位置写入配置文件。 - `pApp->WriteProfileInt("MainWindow", "Bottom", wndRect.bottom);`:将主窗口的下边位置写入配置文件。 - `CMDIFrameWnd::OnClose();`:关闭主窗口。 - `else`:如果不可以关闭窗口,则执行以下代码块: - `PostMessage(WM_NULL, 0, 0);`:发送一个空消息。 - `PostMessage(WM_CLOSE, 0, 0);`:发送一个关闭窗口的消息。 这段代码的作用是在关闭主窗口时,遍历所有活动的 MDI 子窗口,并依次调用子窗口的 `Close` 函数进行关闭操作。如果所有子窗口都成功关闭,则保存主窗口的位置和大小到配置文件,并关闭主窗口。如果有任何一个子窗口无法关闭,则延迟关闭操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值