没看到你的实现方式代码,没法给出合理的改进代码。交换位置,这里涉及两步。第一是判断是否交换。这里就需要遍历窗口内所有按钮(这个要根据实际情况做),如果: 状态为拖动&&鼠标在其中一个控件的WindowRect里面&&这个控件不是被拖动控件, 则:记录两个控件指针,触发交换事件。第二是交换的实现,位置的交换很简单,两个控件分别GetWindowRect获取两个位置,之后根据这两个位置互相MoveWindow就可以了。