Juce C++ - Window 尝试移动它时变空

Juce C++ - Window get empty when trying to move it

我从 window 中删除了标题栏和边框,现在我尝试使用以下代码在单击和移动时使其移动:

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);

}

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

[编辑]

我用这段代码更接近一点:

if (event.eventComponent == this)  {

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

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

现在 window 移动没有变灰,但移动闪烁很多,"jumps" 位置。

其实很简单。我所要做的就是删除这一行:

addMouseListener(this, true);

来自主要 gui 组件的构造函数。不过,我不知道为什么这条线让 window 运动闪烁。如果有人知道请评论。