Juce C ++ - 尝试移动窗口时窗口变空

时间:2017-03-24 11:56:23

标签: c++ juce

我从我的窗口移除了标题栏和边框,现在我正在尝试使用此代码单击并移动时移动它:

void mouseDrag(const MouseEvent& event) override {

    int x = event.getScreenPosition().x - event.getPosition().x;
    int y = event.getScreenPosition().y - event.getPosition().y;

    setTopLeftPosition(x, y);

}

它确实移动但我有两个问题:1)我必须单击2次然后它开始移动2)当我开始移动它时,它变空(只是灰色)其中没有组件。我该如何解决这个问题?

[编辑]

我对这段代码更加接近:

if (event.eventComponent == this)  {

        int x = event.getScreenPosition().x - lastMouseDownX;
        int y = event.getScreenPosition().y - lastMouseDownY;

        getParentComponent()->setTopLeftPosition(x, y);
}

现在窗户移动时没有变灰,但是运动闪烁了很多,并且#34;跳跃"位置。

1 个答案:

答案 0 :(得分:0)

实际上非常简单。我所要做的就是删除这一行:

addMouseListener(this, true);

来自主gui组件的构造函数。尽管如此,我还不知道为什么这条线会使窗户运动闪烁。如果有人知道请发表评论。