我想保存用户设置后的工具条位置,以及应用程序窗口的大小和位置
请问如何做?
最好给出源代码
[email protected]
谢谢
凡是给出有效信息或例子者均有分
UP也有分:)

解决方案 »

  1.   

    使用GetWindowRect得到工具条、窗口的位置和大小,使用ScreenToClient将工具条的位置转换为相对于窗口的相对位置,然后将这些位置存放到注册表中,下次启动后,从注册表中读出,先用SetWindowPos恢复窗口的位置,在使用同样的函数恢复工具条的位置...
      

  2.   

    我认为较简单的实现方法应该如下:
    ----------------------------------------------------
        // 获得工具栏和状态栏的属性
        SaveBarState(AfxGetApp()->m_pszProfileName);
        // 恢复工具栏状态栏
        LoadBarState(AfxGetApp()->m_pszProfileName);
      

  3.   

    cadinfo(无语清风) 
    谢谢!
    那这两个函数放在什么地方好呢?
      

  4.   

    save的在DestroyWindow中load的在OnCreate中并在生成工具栏代码之后顺便问一个:
    WINDOWPLACEMENT wp;
    怎么用??/?比如说窗口在关闭前是最大化(或最小化)但下次启动加载进来就错了
      

  5.   

    创建工具条时往往有一CToolBar变量,得到窗口位置不就行了吗?
    agree to sans(sans)
      

  6.   

    对了下午没来,放在消息WM_CLOSE的响应函数OnClose中!
    另外可以保存窗口的其它属性,详见以下代码:
    ----------------------------------------------
      // 存取窗口状态 //
      WINDOWPLACEMENT WndStatus;
      WndStatus.length=sizeof(WINDOWPLACEMENT);
      GetWindowPlacement(&WndStatus);  AfxGetApp()->WriteProfileInt("DXFGLWS","FLAGS",WndStatus.flags);
      AfxGetApp()->WriteProfileInt("DXFGLWS","SHOWCMD",WndStatus.showCmd);
      AfxGetApp()->WriteProfileInt("DXFGLWS","LEFT",WndStatus.rcNormalPosition.left);
      AfxGetApp()->WriteProfileInt("DXFGLWS","TOP",WndStatus.rcNormalPosition.top);
      AfxGetApp()->WriteProfileInt("DXFGLWS","RIGHT",WndStatus.rcNormalPosition.right);
      AfxGetApp()->WriteProfileInt("DXFGLWS","BOTTOM",WndStatus.rcNormalPosition.bottom);  SaveBarState(AfxGetApp()->m_pszProfileName);

      CXXXFrameWnd::OnClose();
      

  7.   

    没有做过界面相关的东东,太弱了
    cadinfo(无语清风)
    麻烦你给我代码,[email protected]
    谢谢!