http://blog.csdn.net/tianmohust/article/details/6677985 http://blog.csdn.net/lhb19891029/article/details/17081451