您的位置:首页 > 其它

恢复窗口上次关闭时的状态

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))

     调用时会报错。

   


所以会报错。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: