如何恢复工具栏?

niefuhua 2006-01-02 12:13:33
最近我遇到一个问题:
我想在程序启动时恢复前一次关闭时工具栏的停靠状态和位置等所有信息。
我用SaveBarStyle和LoadBarStyle可以在程序只有一个工具栏的时候达到要求,但是当有两个工具栏时,无论如何,它只能正确保存和恢复一个工具栏的信息,另一个工具栏总是在默认位置,请问,这个问题怎么解决?
谢谢!
...全文
825 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
niefuhua 2006-01-08
  • 打赏
  • 举报
回复
我不知道你给我的答案对不对,但是我还是要谢谢你。
Rafier 2006-01-04
  • 打赏
  • 举报
回复
你的CXXXXbar.Creat()之后,
用CXXXXbar.SetDlgCtrlID(IDC_XXX)设定一下工具条的序号。


把一个工具条摆在另一个的右边:
void CMainFrame::DockControlBarLeftOf( CControlBar* Bar,CControlBar* LeftOf)
{ //设置工具条停靠在同一边窗口中
CRect rect;
DWORD dw;
UINT n;
RecalcLayout();//重新显示
LeftOf->GetWindowRect(&rect);
rect.OffsetRect(1,0);//设置偏移值以停靠在同一窗口中
dw=LeftOf->GetBarStyle();
n=0;
n=(dw&CBRS_ALIGN_TOP)?AFX_IDW_DOCKBAR_TOP:n;
n=(dw&CBRS_ALIGN_BOTTOM&&n==0)?AFX_IDW_DOCKBAR_BOTTOM:n;
n=(dw&CBRS_ALIGN_LEFT&&n==0)?AFX_IDW_DOCKBAR_LEFT:n;
n=(dw&CBRS_ALIGN_RIGHT&&n==0)?AFX_IDW_DOCKBAR_RIGHT:n;
DockControlBar(Bar,n,&rect);
}
更详细的东西请在MSDN中搜“DOCKTOOL”,是个详细的例子,不过他用的toolbar不是利用IDE设计的
niefuhua 2006-01-03
  • 打赏
  • 举报
回复
具体一点好吗?
Rafier 2006-01-02
  • 打赏
  • 举报
回复
要设定每个工具栏的ID
SetDlgCtrlID()

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧