I found, that the drag functions for the tabs are corrupted if Pinnable=true and Pinned=true.
Project vbalDTab6, UserControl vbalDTabControl:-------------------------------------Private Sub UserControl_MouseMove(Button As Integer, Shift As Integer, x AsSingle, y As Single) ' Dim i As Long Dim tP As POINTAPI GetCursorPos tP pSetToolTipText tP If (m_bPinnable And (m_bOut Or m_bPinned)) Then ' Unpinned title bar mouse move processing: ScreenToClient m_hWnd, tP ... End If ' Tab mouse move processing: If (m_iDraggingTab > 0) And (Button = vbLeftButton) Then If (m_bJustReplaced) Then ...-------------------------------------The reason for the bug ist, that in this case tP was already converted to screen coordinates before the following code. For a short workaround I inserted ScreenToClient() to reconvert tP to client coordinates. Alternatively You previously could store tP in an other variable.
The changed Code:-------------------------------------Private Sub UserControl_MouseMove(Button As Integer, Shift As Integer, x AsSingle, y As Single) ' Dim i As Long Dim tP As POINTAPI GetCursorPos tP pSetToolTipText tP If (m_bPinnable And (m_bOut Or m_bPinned)) Then ' Unpinned title bar mouse move processing: ScreenToClient m_hWnd, tP ... ClientToScree m_hWnd, tP End If ' Tab mouse move processing: If (m_iDraggingTab > 0) And (Button = vbLeftButton) Then If (m_bJustReplaced) Then ...-------------------------------------For me this works fine.
Date of the tested software: 27/04/03
Environment: VS6.0 SP5, WinNT4.0/SP6a and WinXP/SP1a
|