在窗口的关闭事件(WM_CLOSE)中加入代码:WINDOWPLACEMENT wp;if(GetWindowPlacement(&wp))
{
      if (IsZoomed())
          wp.flage ¦= WPF_RESTORETOMAXIMIZED;      CString strBuffer;
      strBuffer.Format("%i:%i:%i:%i:%i:%i:%i:%i:%i:%i",
          wp.flags,wp.showCmd,
          wp.ptMinPosition.x, wp.ptMinPosition.y,
          wp.ptMaxPosition.x, wp.ptMaxPosition.y,
          wp.rcNormalPosition.left , wp.rcNormalPosition.top,
          wp.rcNormalPosition.right, wp.rcNormalPosition.bottom);    AfxGetApp()->WriteProfileString("Settings","WindowPos",strBuffer); //写入注册表
}在InitInstance的最后(return之前)加入代码:CString strBuffer=GetProfileString("Settings","WindowPos"); //从注册表读出数据
WINDOWPLACEMENT wp;if(!strBuffer.IsEmpty())
{
    int nRead=_stscanf(strBuffer,"%i:%i:%i:%i:%i:%i:%i:%i:%i:%i",
          &wp.flags, &wp.showCmd,
          &wp.ptMinPosition.x, &wp.ptMinPosition.y,
          &wp.ptMaxPosition.x, &wp.ptMaxPosition.y,
          &wp.rcNormalPosition.left , &wp.rcNormalPosition.top,
          &wp.rcNormalPosition.right, &wp.rcNormalPosition.bottom);    if(cRead==10)
    {
        m_pMainWnd->SetWindowPlacement(&wp);
    }
}程序要运行两次以后才能看到结果,第一次是保存数据,第二次以后就能读出位置显示。