这篇文章介绍了,如何在打开窗口的时侯,恢复上次关闭时的状态。总过程分以下几步完成:
建一个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(); 将其改成下的代码:
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))
调用时会报错。
所以会报错。