我从窗口中删除了标题栏和边框,现在我试图在单击并使用以下代码移动时使其移动:
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);
}
现在窗口移动而没有变灰,但移动闪烁很多并且“跳跃”位置。