MFC 关闭窗口时候保存窗口位置

来源:互联网 发布:大宗商品数据 编辑:程序博客网 时间:2024/06/05 04:33

CWinApp::WriteProfileInt 

Call this member function to write the specified value into the specified section of the application's registry or .INI file.

Copy
BOOL WriteProfileInt(   LPCTSTR lpszSection,   LPCTSTR lpszEntry,   int nValue );
CWinApp提供了一组用于读写应用程序配置的方法!
CWinApp::GetProfileIntCWinApp::WriteProfileStringCWinApp::SetRegistryKey
还有上面的WriteProfileInt
Call this member function to write the specified value into the specified section of the application's registry or .INI file.
这句话告诉我们可以保存到注册表或者系统的INI文件当中
 
1:保存到注册表:
关于CWinApp::SetRegistryKey方法
 
如果在Inistance当中执行了 SetRegisterKey()方法
那么在调用 WriteProfileInt的时候,写入的数据将会保存到注册表当中
如果没有执行SetRegisterKey()方法,则写入的数据将会保存到INI文件当中
 
 
LPCTSTR m_pszProfileName; 应用程序的.INI文件名,一般和执行文件名相同。LPCTSTR m_pszRegistryKey; 用于确定保存应用程序主要设置的完整注册表键
UINT GetProfileInt( LPCTSTR lpszSection, LPCTSTR lpszEntry, int nDefault ); 从应用程序的配置文件(.INI)的一个配置项中获取一个整数CString GetProfileString(LPCTSTR szSection, LPCTSTR szEntry, LPCTSTR szDefault = NULL ); 从应用程序的配置文件(.INI)的一个配置项中获取一个字符串BOOL WriteProfileInt(LPCTSTR szSection, LPCTSTR szEntry, int nValue ); 将一个整数写到应用程序的配置文件(.INI)文件的配置项中BOOL WriteProfileString(LPCTSTR szSect, LPCTSTR szEntry, LPCTSTR lpszValue ); 将一个字符串写到应用程序的配置文件(.INI)文件的配置项中void SetRegistryKey( LPCTSTR lpszRegistryKey ); 使应用程序的配置保存在注册表中,而不保存于(.INI)文件中
 
 
用法:
//窗口摧毁时候保存窗口的位置void CNotePadDlg::OnDestroy(){CDialog::OnDestroy();CRect rect;GetWindowRect(rect);theApp.WriteProfileInt("SETTING","left",rect.left);theApp.WriteProfileInt("SETTING","right",rect.right);theApp.WriteProfileInt("SETTING","top",rect.top);theApp.WriteProfileInt("SETTING","bottom",rect.bottom);}
//初始化窗口的位置,上次关闭时候所在的位置void CNotePadDlg::InitRect(){int nLeft = theApp.GetProfileInt("SETTING","left",-1);if(nLeft < 0)return;int nRight = theApp.GetProfileInt("SETTING","right",-1);if(nRight < 0)return;int nTop = theApp.GetProfileInt("SETTING","top",-1);if(nTop < 0)return;int nBottom = theApp.GetProfileInt("SETTING","bottom",-1);if(nBottom < 0)return;MoveWindow(nLeft,nTop,nRight-nLeft,nBottom - nTop);}


 
记得在InitDialog中加入InitRect()函数的调用
BOOL CNotePadDlg::OnInitDialog(){CDialog::OnInitDialog();InitRect();LoadFont();m_hAccel = ::LoadAccelerators(AfxGetInstanceHandle(),(LPCTSTR)IDR_ACCELERATOR1);// Set the icon for this dialog.  The framework does this automatically//  when the application's main window is not a dialogSetIcon(m_hIcon, TRUE);// Set big iconSetIcon(m_hIcon, FALSE);// Set small icon// TODO: Add extra initialization herereturn TRUE;  // return TRUE  unless you set the focus to a control}
 
运行程序,出现窗口,把窗口拖到指定位置关闭,下次启动会出现在指定
 
 
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 年检标志打错了怎么办 贵州个体出租车工商执照年检怎么办 驾驶证考试预约提示网络繁忙怎么办 帝豪显示屏花屏怎么办 注册公司居委会不盖章怎么办 营业执照名字和店名不一样怎么办 开炸鸡店没经验怎么办 提名候选人时重名重姓怎么办 别人用我的店名怎么办 wish店铺出现侵权产品怎么办 如果公司缺人该怎么办 鲁班奖证书丢了怎么办 个人注册服务号没有营业执照怎么办 社保过了缴费日怎么办 被评为d级纳税人怎么办 忘了税号tfn怎么办 个体户没有办税务登记怎么办 遇征地企业不搬怎么办 dnf账号改错名了怎么办 银行卡绑定的手机号码换了怎么办 支付宝手机号码换了怎么办 淘宝账号被注销了怎么办 注销淘宝号绑定的手机号怎么办 淘宝账号不小心注销了怎么办 淘宝旧密码忘了怎么办 淘宝登录原始密码忘记了怎么办 微信原始密码忘记了怎么办 优酷会员重复交费怎么办 微信解绑手机号密码忘了怎么办 闪银呼呼逾期5天怎么办 忘记淘宝账号和密码怎么办 蘑菇街账号忘了怎么办 台式电脑密码忘记了怎么办 单位社保登陆密码忘记了怎么办 12306的登录密码忘了怎么办 网银支付密码忘了怎么办 邮政网银密码忘了怎么办 12306新注册待核验怎么办 建行网银盾密码忘了怎么办 建行网银登陆密码忘了怎么办 建行网银密码忘了怎么办