MFC SDI 中 通过注册表保存当前窗体的 显示状态位置
来源:互联网 发布:落地请开手机知乎 编辑:程序博客网 时间:2024/06/13 23:14
在 框架类响应 WM_CLOSE消息的时候添加如下代码
HKEY key; //用于接收注册表项句柄
WINDOWPLACEMENT info; //获得窗体位置状态信息
GetWindowPlacement(&info); //CWnd类的函数获取一个窗体的状态信息
if(ERROR_SUCCESS== //调用 RegOpenKeyEx 打开注册表 返回key 如果成功 返回 ERROR_SUCCESS
RegOpenKeyEx(
HKEY_CURRENT_USER, //要打开的项的句柄 具体看MSDN
"Software\\WolfeLee\\SaveWinState\\Settings", //子项
0, //保留0
KEY_ALL_ACCESS, //所有权限
&key)) //返回子项句柄
{
DWORD des; //用于接收返回信息 这里不用
if(ERROR_SUCCESS==::RegCreateKeyEx ( //如果注册表创建成功 那么返回ERROR_SUCCESS
HKEY_CURRENT_USER,
"Software\\WolfeLee\\SaveWinState\\Settings",
0,
"State", //类型
REG_OPTION_NON_VOLATILE, //在windows重启的时候 我们创建的注册表 依然保存
KEY_ALL_ACCESS, //所有权限
NULL, //默认安全结构
&key, //用于接收HKEY
&des))
{ // 将窗口信息保存到注册表中
RegSetValueEx(key, "WindowState", 0, REG_BINARY, (LPBYTE)&info, sizeof(WINDOWPLACEMENT)); //用二进制的形式保存窗体信息
RegCloseKey(key); // 关闭注册表
}
}
以上完成了 状态的饿保存 我们如何在启动的时候加载注册表信息 在 APP的 初始化函数中 要在 m_pMainWnd->ShowWindow(SW_SHOW) 之前获取窗体信息
添加下面代码
///读取注册表
HKEY key;
DWORD type,n;
WINDOWPLACEMENT info;
if(ERROR_SUCCESS==RegOpenKeyEx(HKEY_CURRENT_USER, //打开先前创建注册表 如果没有键值那么我们调用原来的设置
"Software\\WolfeLee\\SaveWinState\\Settings",
0,
KEY_ALL_ACCESS,
&key))
{
RegQueryValueEx(key, //注册表的句柄
"WindowState", //我们保存的键值的名字
0,
&type, //获取类型
(LPBYTE)&info, //获取 状态信息
&n);
this->m_pMainWnd->SetWindowPlacement(&info); //设置 窗体位置信息
}
else
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
以上完成了对 窗体状态的保存
- MFC SDI 中 通过注册表保存当前窗体的 显示状态位置
- MFC中SDI中用GDI+显示图片
- MFC中SDI显示为Dialog样式
- MFC:在状态栏上显示鼠标当前的位置
- 多文档的MFC中,如何去掉菜单栏,父窗体,子窗体最大化显示,关闭子窗体是去掉保存提示
- ACCESS如何打印窗体中当前显示的记录
- C#中如何处理子窗体在父窗体中显示的位置
- MFC中如何将应用程序的配置信息保存到注册表中(一)
- MFC中如何将应用程序的配置信息保存到注册表中(二)
- mfc中注册表的使用
- 如何在MFC的SDI程序中实现多视图
- 如何在MFC的SDI程序中实现多视图
- MFC中SDI程序创建流程的回顾
- 如何在MFC的SDI程序中实现多视图
- MFC窗体位置
- MFC 单文档模版SDI中 取得当前应用程序实例句柄
- 关闭对话框重启还保留着上次的数据--MFC中如何把数据保存到注册表
- c# 中窗体的位置
- ASP.NET MVC中的依赖倒置IOC/依赖注入DI, (MircroSoft.Practices.Unity)与asp.net mvc 3的融合
- shell基础(输入参数、分支、循环)
- 土豆5轮融资1.35亿美元 传资金可撑到明年6月
- 查看系统资源的命令(汇总一)
- 设计模式
- MFC SDI 中 通过注册表保存当前窗体的 显示状态位置
- android-数据库的增删改查
- CF round #79 div2 D bues
- 如何使xml中提示?
- 设计模式之(四)单态Singleton
- spring的2中注入方式
- Barcode 导入Word
- Struts2批量插入
- struts2 <constant name="struts.devMode" value="true" /> 报错