参考: http://blog.csdn.net/qyongkang/article/details/6090488 http://blog.csdn.net/qyongkang/article/details/6090497 http://blog.csdn.net/qyongkang/article/details/6091261 http://blog.csdn.net/qyongkang/article/details/6091931