首页 > 代码库 > MFC 关闭窗口时候保存窗口位置
MFC 关闭窗口时候保存窗口位置
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 dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here return TRUE; // return TRUE unless you set the focus to a control}
运行程序,出现窗口,把窗口拖到指定位置关闭,下次启动会出现在指定
MFC 关闭窗口时候保存窗口位置
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。