如何实现"记录下关闭程序时对话框的显示状态,以及坐标位置.在下一次运行程序的时候,可以Load上一次关闭程序时对话框的状态和位置"?

解决方案 »

  1.   

    WriteProfile应该可以吧,然后再读出来就可以了
      

  2.   

    在关闭前把位置写入ini or registry 下次从里面读取就可以啦
      

  3.   

    我想也是用这个函数WriteProfileInt.
    可是对话框的位置怎么取得?
      

  4.   

    1. 处理WM_DESTROY消息,保存窗口状态
    void CMyDlg::OnDestroy() 
    {
      WINDOWPLACEMENT wp;
      wp.length = sizeof(wp);
      GetWindowPlacement(&wp);
      AfxGetApp()->WriteProfileBinary(AfxGetApp()->m_pszAppName, 
                                      "State", (LPBYTE)&wp, wp.length);  CDialog::OnDestroy();
    }2. 在CMyDlg::OnInitDialog里加载窗口状态
    BOOL CMyDlg::OnInitDialog()
    {
      ...
      WINDOWPLACEMENT *pwp;
      UINT nSize = sizeof(WINDOWPLACEMENT);
      AfxGetApp()->GetProfileBinary(AfxGetApp()->m_pszAppName, 
                                    "State", (LPBYTE*)&pwp, &nSize);
      if(pwp)
      {
        SetWindowPlacement(pwp);
        delete *(LPBYTE*)&pwp;
      }

      return TRUE;
    }