【发布时间】:2015-01-05 06:11:33
【问题描述】:
我有带有自定义免费图像且没有边框的框架,可以捕获和控制,例如关闭、最小化和最大化。在代码中,我捕获拖动事件并根据新的鼠标坐标移动框架。
当我在任务栏下拖动框架时,我遇到了问题。这一举动无论如何都不会阻止(但标准窗口我不能进入任务栏下无法访问的区域,但我的框架可以)。有没有办法捕捉这种情况并防止光标在任务栏下向下移动?顺便说一句,我可以粘在屏幕边缘吗?
这里是拖拽代码:
void MainFrame::OnMouseLeftDown(wxMouseEvent& event)
{
CaptureMouse();
wxPoint pos = ClientToScreen(event.GetPosition());
wxPoint origin = GetPosition();
int dx = pos.x - origin.x;
int dy = pos.y - origin.y;
m_PosDelta = wxPoint(dx, dy);
}
void MainFrame::OnMouseMove(wxMouseEvent& event)
{
if (event.Dragging() && event.LeftIsDown())
{
wxPoint pos = ClientToScreen(event.GetPosition());
Move(wxPoint(pos.x - m_PosDelta.x, pos.y - m_PosDelta.y));
}
}
void MainFrame::OnMouseLeftUp(wxMouseEvent& event)
{
if (HasCapture()) ReleaseMouse();
}
【问题讨论】: