//按下按钮并弹起				IDC_BUTTON1                     1001
/*
Button:WindowProc():message=0x20 ,	WPARAM=1879210944 ,	HLPARAM =513 ,	LWPARAM =1 
Button:WindowProc():message=0x87 ,	WPARAM=1 ,			HLPARAM =5 ,	LWPARAM =976		WM_GETDLGCODE	后跟消息函数OnGetDlgCode()
鼠标按下
Button:WindowProc():message=0x201 ,WPARAM=1 ,			HLPARAM =20 ,	LWPARAM =33			WM_LBUTTONDOWN
Button:WindowProc():message=0xf3 ,	WPARAM=1 ,			HLPARAM =0 ,	LWPARAM =0			BM_SETSTATE		后跟重载函数OnDrawItem()
Button:WindowProc():message=0x87 ,	WPARAM=1 ,			HLPARAM =5 ,	LWPARAM =976		WM_GETDLGCODE	后跟消息函数OnGetDlgCode()
鼠标移动
Button:WindowProc():message=0x200 ,WPARAM=1 ,			HLPARAM =20 ,	LWPARAM =33			WM_MOUSEMOVE
Button:WindowProc():message=0xf3 ,	WPARAM=1 ,			HLPARAM =0 ,	LWPARAM =0			BM_SETSTATE		@此处f3后没有跟重装函数OnDrawItme()
Button:WindowProc():message=0x119 ,WPARAM=1 ,			HLPARAM =16 ,	LWPARAM =0 
Button:WindowProc():message=0x119 ,WPARAM=10 ,			HLPARAM =16 ,	LWPARAM =0 
Button:WindowProc():message=0x119 ,WPARAM=2 ,			HLPARAM =16 ,	LWPARAM =0 
Button:WindowProc():message=0x87 ,	WPARAM=0 ,			HLPARAM =5 ,	LWPARAM =976		WM_GETDLGCODE	后跟消息函数OnGetDlgCode()

鼠标弹起
Button:WindowProc():message=0x202 ,WPARAM=0 ,			HLPARAM =20 ,	LWPARAM =33			WM_LBUTTONUP
Button:WindowProc():message=0xf3 ,	WPARAM=0 ,			HLPARAM =0 ,	LWPARAM =0			BM_SETSTATE		后跟重载函数OnDrawItem()
Button:WindowProc():message=0x215 ,WPARAM=0 ,			HLPARAM =0 ,	LWPARAM =0			WM_CAPTURECHANGED

分析得出重装函数DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)只在按下和弹起 f3消息后调用一次
分析:	鼠标按下后f3消息wparam为1,调用DrawItem;
		鼠标移动后f3消息wparam扔为1,没有改变状态,没调用DrawItem;
		鼠标弹起后f3消息wparam改为0,调用DrawItem;

网络:	OnDrawItem( int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct );:
		当自绘按钮(owner-draw button),下拉列表框(combo box),
		列表框(list box)视觉属性,或者菜单发生变化时,框架为他们的owner调用该函数。本例没产生WM_DRAWITEM(0x002B)消息
		OnDrawItem是画窗口中的子控件的,因为它的入口参数LPDRAWITEMSTRUCT带入不同子控件的相关参数,
		而且,你得把字控件设置成“自画”类型,才会调用到OnDrawItem,
		顺便说一下自画,不是所有设置成自画类型的控件都会调用父窗口的OnDrawItem,
		例如ListBox的自画,你就必须重载CListBox的DrawItem方法和MeasureItem方法才可以,
		但象菜单,按钮等的自画则会调用OnDrawItem。
		OnPaint和OnDrawItem不在一个范畴内,他是WM_PAINT的响应函数,
		凡是基于CWnd的类都有OnPaint事件发生,就是说凡是窗口都有WM_PAINT事件发生。
		来自:http://www.cnblogs.com/sqzxcv/archive/2009/12/06/1618117.html
??:	消息函数OnDrawItem( int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct );是在父窗口中调用,对子控件处理?
		在子控件类中不会有控制自己的WM_DRAWITEM消息?不会调用OnDrawItem( int , LPDRAWITEMSTRUCT  )?
		
		在子控件自身类中调用重载函数DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct); 
最后:1	在对话框中添加自绘按钮,如果设置owner draw属性为真,按下、弹起按钮,父对话框会接收到WM_DRAWITEM消息,
		并会调用对话框的OnDrawItem函数,可在函数或消息中对按钮进行处理。
		其中lpDrawItemStruct->CtlID,nIDCtl两个参数表明按钮的ID,
		对于自绘按钮类自身,按下弹起会调用重载函数DrawItem()
		其中LPDRAWITEMSTRUCT.itemState 按下等于17,弹起等于16
	2	如果owner draw消息设置为假,则,父窗口不会收到WM_DRAWITEM消息,也不会调用OnDrawItem()函数
		按钮自身类也不会调用重载的DrawItem()函数。
		按钮的自绘效果都会不起作用,表现出来一个白框框样子的标准MFC控件
		但owner draw为假的情况下,自绘按钮类对WM_PAINT/WM_ERASEBKGND消息或OnPaint/OnEraseBkgnd的重载仍起作用
		可以改变按钮的初始样子,只能看不能用,点一次按钮后就恢复为标准的MFC控件按钮了。
		仍有0x00f3消息
		*/