在 MFC 中,CReBarCtrl 类确实有 BeginDrag 方法,它用于启动 ReBar 控件中的拖拽操作。以下是 CReBarCtrl::BeginDrag 方法的声明:
BOOL BeginDrag(UINT nBand, DWORD dwPos = (DWORD)-1);

  •  nBand 参数表示要拖拽的 band 的索引。

  •  dwPos 参数表示拖拽操作的起始位置,默认为 (DWORD)-1,表示使用当前鼠标位置。


以下是一个简单的示例,演示如何使用 CReBarCtrl::BeginDrag 方法启动 ReBar 控件中 band 的拖拽操作:
CReBar myReBar;

// 创建 ReBar 控件
myReBar.Create(WS_CHILD | WS_VISIBLE | WS_BORDER | RBS_VARHEIGHT, this);

// 获取与 ReBar 控件相关联的 CReBarCtrl 对象
CReBarCtrl& reBarCtrl = myReBar.GetReBarCtrl();

// 添加工具栏到 ReBar
CToolBar myToolBar;
myToolBar.Create(this, WS_CHILD | WS_VISIBLE | CBRS_TOP, ID_MY_TOOLBAR);
myToolBar.LoadToolBar(IDR_MY_TOOLBAR);

REBARBANDINFO rbi;
ZeroMemory(&rbi, sizeof(rbi));
rbi.cbSize = sizeof(rbi);
rbi.fMask = RBBIM_CHILD | RBBIM_STYLE | RBBIM_SIZE | RBBIM_CHILDSIZE;
rbi.fStyle = RBBS_GRIPPERALWAYS;
rbi.hwndChild = myToolBar.m_hWnd;
rbi.cx = 100;  // 设置宽度
rbi.cyMinChild = 30;  // 设置最小高度

// 在 ReBar 中插入一个 band
reBarCtrl.InsertBand(-1, &rbi);

// 启动 band 的拖拽操作
reBarCtrl.BeginDrag(0);

在这个示例中,首先创建了一个 CReBar 对象 myReBar,并创建了与之相关联的 ReBar 控件。然后,通过 GetReBarCtrl 方法获取 CReBarCtrl 对象,通过 InsertBand 方法向 ReBar 中插入一个 band。最后,通过调用 BeginDrag 方法启动 band 的拖拽操作。




转载请注明出处:http://www.zyzy.cn/article/detail/21903/MFC/CReBarCtrl