DockContentDragFilter.PreFilterMessage Method
Parameters
- m
- Message
The message to be dispatched. You cannot modify this message.
Return Value
booltrue to filter the message and stop it from being dispatched; false to allow the message to continue to the next filter or control.
Implements
IMessageFilter.PreFilterMessage
public bool PreFilterMessage(ref Message m)
{
if (!_isDragging)
return false;
if (!(m.Msg == (int)Enums.WINDOW_MESSAGE.MOUSE_MOVE ||
m.Msg == (int)Enums.WINDOW_MESSAGE.L_BUTTON_DOWN ||
m.Msg == (int)Enums.WINDOW_MESSAGE.L_BUTTON_UP ||
m.Msg == (int)Enums.WINDOW_MESSAGE.L_BUTTON_DBL_CLK ||
m.Msg == (int)Enums.WINDOW_MESSAGE.R_BUTTON_DOWN ||
m.Msg == (int)Enums.WINDOW_MESSAGE.R_BUTTON_UP ||
m.Msg == (int)Enums.WINDOW_MESSAGE.R_BUTTON_DBL_CLK))
return false;
if (m.Msg == (int)Enums.WINDOW_MESSAGE.MOUSE_MOVE)
{
HandleDrag();
return false;
}
if (m.Msg == (int)Enums.WINDOW_MESSAGE.L_BUTTON_UP)
{
if (_targetRegion != null)
{
_dockPanel.RemoveContent(_dragContent);
_dragContent.DockArea = _targetRegion.DockArea;
_dockPanel.AddContent(_dragContent);
}
else if (_targetGroup != null)
{
_dockPanel.RemoveContent(_dragContent);
switch (_insertType)
{
case DockInsertType.None:
_dockPanel.AddContent(_dragContent,
_targetGroup);
break;
case DockInsertType.Before:
case DockInsertType.After:
_dockPanel.InsertContent(_dragContent,
_targetGroup,
_insertType);
break;
}
}
StopDrag();
return false;
}
return true;
}
This language is not supported or no code example is available.