恢复窗口上次关闭时的状态
2010-07-26 16:45
176 查看
这篇文章介绍了,如何在打开窗口的时侯,恢复上次关闭时的状态。总过程分以下几步完成:
建一个MFC工程命名为
test.
一,
在T
estApp
的
InitInstance
()
中使用
SetRegistryKey()
函数注册一个注册表的K
ey
。函数执行后传入的
key
会在
HKEY_CURRENT_USER/Software/”yourkey”
。
二,
给窗口添加一个
WM_CLOSE
消息处理函数。在O
nClose()
函数中对窗口的状态进行保存。保存的步骤有:1,调用
SaveBarState(sectionName),
2,调用
GetWindowPlacement
取得窗口的位置,大小等信息。
3,设用
WriteProfileBinary()
将取得的信息写入注册表中。
三,
恢复过程:在
testApp
的
InitInstance
()函数中打到
pMainFrame->ShowWindow();
将其改成下的代码:
LPBYTE
ppData;
UINT
size;
LPWINDOWPLACEMENT*
ppWP;
if(GetProfileBinary(SETTINGS_KEY,WINDOWPLACEMENT_KEY,
&ppDat
a,&size))
{
ppWP
= (LPWINDOWPLACEMENT *)&ppData;
pMainFrame->SetWindowPlacement(*ppWP);
delete
[]*ppWP;
}
else {
pMainFrame->ShowWindow(m_nCmdShow);
}
问题:
一,指针的比较:
1
,
LPBYTE *
ppData;
if(GetProfileBinary(SETTINGS_KEY,WINDOWPLACEMENT_KEY,
&ppDat
a,&size))
调用时会报错。
所以会报错。
建一个MFC工程命名为
test.
一,
在T
estApp
的
InitInstance
()
中使用
SetRegistryKey()
函数注册一个注册表的K
ey
。函数执行后传入的
key
会在
HKEY_CURRENT_USER/Software/”yourkey”
。
二,
给窗口添加一个
WM_CLOSE
消息处理函数。在O
nClose()
函数中对窗口的状态进行保存。保存的步骤有:1,调用
SaveBarState(sectionName),
2,调用
GetWindowPlacement
取得窗口的位置,大小等信息。
3,设用
WriteProfileBinary()
将取得的信息写入注册表中。
三,
恢复过程:在
testApp
的
InitInstance
()函数中打到
pMainFrame->ShowWindow();
将其改成下的代码:
LPBYTE
ppData;
UINT
size;
LPWINDOWPLACEMENT*
ppWP;
if(GetProfileBinary(SETTINGS_KEY,WINDOWPLACEMENT_KEY,
&ppDat
a,&size))
{
ppWP
= (LPWINDOWPLACEMENT *)&ppData;
pMainFrame->SetWindowPlacement(*ppWP);
delete
[]*ppWP;
}
else {
pMainFrame->ShowWindow(m_nCmdShow);
}
问题:
一,指针的比较:
1
,
LPBYTE *
ppData;
if(GetProfileBinary(SETTINGS_KEY,WINDOWPLACEMENT_KEY,
&ppDat
a,&size))
调用时会报错。
所以会报错。
相关文章推荐
- Duilib 实现右下角弹出像QQ新闻窗口,3秒后窗口透明度渐变最后关闭,若在渐变过程中鼠标放到窗口上,窗口恢复最初状态(二)
- 如何在程序打开时窗口恢复上次关闭的大小和位置?
- <winform>用StreamWriter实现恢复上次关闭时的状态
- win7下恢复“经典任务栏”/“快速启动栏”,关闭“窗口自动最大化”
- 从上次关闭窗口的位置启动窗口
- ApplicationSettingsBase: 关掉WPF 窗口后,再次打开,显示在上次关闭的位置
- 程序窗口按用户上次关闭时的位置大小打开程序
- [mac]点关闭按钮后,重新点,恢复窗口
- 小技巧:如何恢复显示关闭的窗口
- Qt 储存软件窗口最后的关闭时的状态
- Modelsim软件窗口顺序打乱后如何恢复初始状态
- windows应用开发由浅入深(三)利用注册表将程序启动时窗口位置设置为上次关闭的位置
- MFC窗口关闭后怎么恢复?
- 如何让Visual Studio 清除最近打开项目 关闭上次未关闭的标签窗口
- EXT客户端panel上次打开时的状态(本地保存列隐藏、顺序、列宽、窗口大小)
- git 恢复到上次提交的状态
- 程序关闭后,点击dock图标恢复窗口
- QTP关闭所有的应用程序窗口,场景恢复
- 为特定应用程序关闭恢复窗口功能 [Mac OS X Lion][转]
- win7 下恢复“经典任务栏”/“快速启动栏”,关闭“窗口自动最大化” -摘自网络