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 运动闪烁。如果有人知道请评论。
我从 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 运动闪烁。如果有人知道请评论。