在vckbase里看到一个自绘列表的程序
BEGIN_MESSAGE_MAP(CListCtrlCl, CListCtrl)
ON_WM_MEASUREITEM()
ON_WM_MEASUREITEM_REFLECT()
END_MESSAGE_MAP()
怎么同时出现了两个 ?有什么作用 对应的响应函数是什么?
BEGIN_MESSAGE_MAP(CListCtrlCl, CListCtrl)
ON_WM_MEASUREITEM()
ON_WM_MEASUREITEM_REFLECT()
END_MESSAGE_MAP()
怎么同时出现了两个 ?有什么作用 对应的响应函数是什么?
是让子窗口也相应WM_MEASUREITEM消息
那ON_WM_MEASUREITEM()这个是响应什么呢?
只有用第二个映射的时候才会反应,
在这里到底有没有必要用ON_WM_MEASUREITEM这个
ON_WM_MEASUREITEM 的响应函数是afx_msg void OnMeasureItem( LPMEASUREITEMSTRUCT );
ON_WM_MEASUREITEM_REFLECT() 的响应函数是 afx_msg void MeasureItem ( LPMEASUREITEMSTRUCT lpMeasureItemStruct );一般用ON_WM_MEASUREITEM_REFLECT()就行了。不需要ON_WM_MEASUREITEM
ON_WM_MEASUREITEM_REFLECT() 的响应函数是 afx_msg void MeasureItem (LPMEASUREITEMSTRUCT lpMeasureItemStruct ); 除了8楼讲了这点外,我觉得这里还应该提到的问题是:
当子控件创建时向,会向它的所有者发送这个消息,但我们可以利用消息反射使子控件来处理这个消息,所以那俩个放在一起时,最终消息都还是由子控件来处理的,所以我认为有了ON_WM_MEASUREITEM_REFLECT,就完全没有必要存在 ON_WM_MEASUREITEM了。