【发布时间】:2015-09-02 15:48:31
【问题描述】:
尝试使用垂直方向的 CControlBar 派生的自定义工具栏。大概没有结果,因为它总是水平或总是垂直,或者我实际上不知道 - 太多参数无法同步,我很害怕!
这是我目前得到的:
// creating the CControlBar-derived toolbar
CMyCB cb; // CControlBar-derived toolbar
cb.Create( AfxRegisterWndClass(0),
NULL,
WS_CHILD | WS_VISIBLE ,
CRect(0,0,100,100),
AfxGetMainWnd(),
0
);
cb.SetBarStyle( cb.GetBarStyle() | CBRS_LEFT | CBRS_SIZE_DYNAMIC | CBRS_GRIPPER );
cb.EnableDocking( CBRS_ORIENT_HORZ );
// in CFrameWnd-derived window constructor
this->EnableDocking( CBRS_ALIGN_ANY );
this->FloatControlBar( &cb, CPoint(100,100), CBRS_ALIGN_LEFT );
this->ShowControlBar( &cb, TRUE, FALSE );
观察 CControlBar::CalcFixedLayout(在 CMyCB 中被覆盖)是如何通过在此处放置断点来调用的,我可以看到它是 bHorz 参数(通知 cb 是水平工具栏还是垂直工具栏)在第一次调用时使用“2”,在随后的第二次调用中使用“0”。
我能从中得出什么结论?有没有办法创建一个始终水平或始终垂直的自定义工具栏? (至少对于bHorz 参数)请看上面sn-p 中的参数CBRS_ *。非常感谢。
托马斯
【问题讨论】: