在 框架类响应 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();

以上完成了对 窗体状态的保存

转载于:https://www.cnblogs.com/yuedongwei/archive/2011/08/04/4145646.html

MFC SDI 中 通过注册表保存当前窗体的 显示状态位置相关推荐

  1. C#中对注册表的操作指南

    C#中对注册表的操作指南 Windows 操作系统的注册表包含了很多有关计算机运行的配置方式,打开注册表我们可以看到注册表是按类似于目录的树结构组织的,其中第二级目录包含了五个预定义主键分别是:HKE ...

  2. 命令行(cmd.exe)中操作注册表

    批处理是windows下公认的简化工作甚至自动化的官方语言,批处理是多个命令组合起来相互协作批量处理预定工作,所以学批处理就得先一个个命令学,现在开始学习如何在命令行(cmd.exe)中操作注册表. ...

  3. html语言 怎么清除用户名 name= password=,在html页面中填写注册表单后,它会给出这个错误,并使用用户名和密码并将值存储在登录表单中...

    在html页面中填写注册表单后,它会给出此错误,并使用用户名和密码并将值存储在登录表单中:TypeError at /login/ argument of type 'NoneType' is not ...

  4. K8s(Kubernetes), docker中的registry是什么意思?和windows中的注册表registry有什么区别?

    相信很多初学者会对K8s(Kubernetes)中的registry这个概念感到很困惑,因为翻译成中文实在是不好翻译,直译"注册"就让人觉得非常费解.网上对于这方面的中文资料也很少 ...

  5. 注册表桌面显示计算机,电脑开机后不显示桌面图标怎么办?修改注册表解决开机后不显示桌面图标的3种方法...

    解决方法一: 1.按Win+R打开运行,输入regedit并回车: 2.在注册表展开:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersi ...

  6. Win10为将用户中文名修改为英文名而修改了注册表导致开机时电脑显示“无法登陆到你的账户”的问题简单解决方案

    Win10为将用户中文名修改为英文名而修改了注册表导致开机时电脑显示"无法登陆到你的账户"的问题简单解决方案 起因 为了将用户中文名修改为英文名,参考了站内多章大神的方法,结果导致 ...

  7. R语言text函数在R原生可视化结果中添加文本标签、内容:指定文本显示的位置、颜色、字体大小等(Position、Change Color 、 Size of Text)

    R语言text函数在R原生可视化结果中添加文本标签.内容:指定文本显示的位置.颜色.字体大小等(Position.Change Color . Size of Text) 目录

  8. 我的YUV播放器MFC小笔记:注册表读写

    在使用YUV Player Deluxe时,发现其可保存上一次的参数,研究之后,才知道它是使用注册表来实现的.下面是YUV播放器与注册表有关的函数接口,注册表与了我的大名外,其它值是参照YUV Pla ...

  9. oracle不能写入注册表,保存注册表时提示无法创建值,写入注册表时出错怎么办?...

    如何解决保存注册表提示"无法创建值,写入注册表时出错"的问题?电脑当中的注册表编辑器有着十分重要的作用,但是最近却有用户表示遇到了编辑注册表后保存却提示"无法创建值,写入 ...

最新文章

  1. ES6基础之——对比两个值是否相等Object.is()
  2. phpstudy composer 安装YII2
  3. 解决从github上拉取代码慢的问题
  4. EMS server Tibco
  5. asp php java_ASP\JSP\PHP相比各有什么优缺点?
  6. 线性代数拾遗(六):特征值与特征向量
  7. php 获取域名部分,PHP 获取顶级域名 获取域名的函数 parseHost()
  8. php事务基本要素,数据库事务正确执行的四个基本要素
  9. Andrew Ng 如何重拾梦想
  10. 深入Session2
  11. C语言Ip获取mac,C语言怎么实现Windows下获取IP和MAC地址?
  12. 手把手教你学项目管理软件project
  13. Scratch之自动走迷宫--左手法则
  14. 【揭秘Wintel提升win 7系统性能的背后】
  15. php 解析lrc文件格式,前端LRC歌词解析播放插件
  16. 有没有一款手机桌面便签软件?真正好用的便签软件推荐
  17. RSA算法详解与练习
  18. 关于生物医学工程{血站+软件}的看法
  19. Vue3 + elementplus 分页组件英文改为中文
  20. 百度智能云 x 华栖云 | 媒体智能化探路者

热门文章

  1. 怎样在html中实现图层重叠,javascript – 在HTML5画布中实现图层
  2. 二叉树的锯齿形层序遍历Python解法
  3. 合并两个有序数组Python解法
  4. mysql schema设计_mongodb 的 schema 设计方法
  5. oracle10g优化器默认,Oracle10g数据库优化实用心得小结
  6. 打开excel文件并写入_双击Excel表格文件时只打开程序不能直接打开文件
  7. spring boot 503_Spring实战读书笔记第4章 面向切面的Spring
  8. postfix 部署ssl后还是25_宝塔面板的邮局管理器Postfix无法启动解决办法
  9. 电源开关上的 | 和 O 究竟代表了什么?
  10. 图床失效了?也许你应该试试这个工具