请教关于工具栏左右排列的问题 本帖最后由 twins222 于 2010-03-19 15:54:01 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个函数可是调整两个工具栏之间的位置:void CMainFrame::DockControlBarLeftOf(CToolBar *Bar, CToolBar *LeftOf){ CRect rect; DWORD dw; UINT n; // 让 MFC 调整所有浮动工具条的尺寸,以便GetWindowRect的到准确结果 RecalcLayout(TRUE); 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 将在单独的一行里浮动工具条, // 通过计算矩形的大小来模拟工具条拖动到指定位置实现浮动。 DockControlBar(Bar,n,&rect);} voidDockControlBarAtBottom( CFrameWnd *pFrame, CToolBar* Top, CToolBar* Bottom ){ CRect rect; DWORD dw; UINT n; // 让 MFC 调整所有浮动工具条的尺寸,以便GetWindowRect的到准确结果 pFrame->RecalcLayout( TRUE ); Top->GetWindowRect( &rect ); rect.OffsetRect( 0, 10 ); dw = Top->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 将在单独的一行里浮动工具条, // 通过计算矩形的大小来模拟工具条拖动到指定位置实现浮动。 pFrame->DockControlBar( Bottom, n, &rect );} 请问如何将数据库指针移动到指定记录的位置上? vc怎么保存读取带密码的excel 怎么可以使所有视图重绘? 不用CFileDialog怎么打开文件 关于SetRect 字体设置 关于一个聊天程序 为什么总是跳到POPFD处呢?? 我在尝试作一个浏览器 程序怎么临时提升为管理员权限? 关于改变其他进程子窗口上控件的内容改变 vc 往ACCESS数据库写数据的
{
CRect rect;
DWORD dw;
UINT n;
// 让 MFC 调整所有浮动工具条的尺寸,以便GetWindowRect的到准确结果
RecalcLayout(TRUE);
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 将在单独的一行里浮动工具条,
// 通过计算矩形的大小来模拟工具条拖动到指定位置实现浮动。
DockControlBar(Bar,n,&rect);
}
DockControlBarAtBottom( CFrameWnd *pFrame, CToolBar* Top, CToolBar* Bottom )
{
CRect rect;
DWORD dw;
UINT n; // 让 MFC 调整所有浮动工具条的尺寸,以便GetWindowRect的到准确结果
pFrame->RecalcLayout( TRUE ); Top->GetWindowRect( &rect );
rect.OffsetRect( 0, 10 );
dw = Top->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 将在单独的一行里浮动工具条,
// 通过计算矩形的大小来模拟工具条拖动到指定位置实现浮动。
pFrame->DockControlBar( Bottom, n, &rect );
}