import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JFrame;
public class RussiaBox extends JFrame implements MouseListener,MouseMotionListener{
Point orgin=new Point();
public RussiaBox(){
this.setUndecorated(true);
this.setSize(500,500);
this.setVisible(true);
this.addMouseListener(this);
this.addMouseMotionListener(this);
}
public static void main(String []args){
new RussiaBox();
}
@Override
public void mouseDragged(MouseEvent e) {
// TODO Auto-generated method stub
Point now=this.getLocation();
this.setLocation(now.x+e.getX()-orgin.x,now.y+e.getY()-orgin.y);
}
@Override
public void mouseMoved(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
orgin.x=e.getX();
orgin.y=e.getY();
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
}
在windows SDK 中移动无标题栏的窗口,可在处理WM_LBUTTONDOWN消息时做如下处理:
case WM_LBUTTONDOWN:
PostMessage(hwnd,WM_NCLBUTTONDOWN,HTCAPTION,lParam);
break;