用CDockablePane,当两个Dock窗口叠在一起时,会出一个TabCtrl,出现两个Tab。用鼠标拖拽一个,会把它拖成浮动状态。
看了一下消息序列,会响应CMFCBaseTabCtrl的OnLButtonDown => OnMouseMove => OnLButtonUp => CDockablePane::OnLButtonUp。
现在重写了CDockablePane::CreateTabbedPane,设置HideSingleTab(FALSE),使只有一个Tab标签时也显示。
当有2个tab时没有问题,但是当只有一个标签的Tab上用鼠标拖拽,还是想拖拽成浮动窗口。
跟踪消息,CMFCBaseTabCtrl::OnLButtonDown => OnMouseMove,然后就不再响应OnLButtonUp了。导致窗口拖不出来。
看来一下OnMouseMove函数里面,拖拽一个Tab的路径和2Tab的几乎相同。不知道为什么会不在继续相应OnLButtonUp了
请问OnLButtonUp怎么会丢失?