最近在使用XTreme Toolkit,用到其中的报表控件CXTPReportControl,我现在想实现CXTPReportControl的列标题鼠标单击事件。记得在MFC的CListCtrl中有LVN_COLUMNCLICK单击列标题消息,在CXTPReportControl就不太清楚了。我阅读了帮助文档,上面说ON_NOTIFY事件有以下几种:
ON_NOTIFY(NM_CLICK, ID_REPORT_CONTROL, OnReportItemClick)//鼠标单击列表行事件
ON_NOTIFY(NM_RCLICK, ID_REPORT_CONTROL, OnReportItemRClick)//鼠标右键单击列表行事件
ON_NOTIFY(NM_DBLCLK, ID_REPORT_CONTROL, OnReportItemDblClick)//鼠标单击列表行事件
ON_NOTIFY(XTP_NM_SHOWFIELDCHOOSER, ID_REPORT_CONTROL, OnShowFieldChooser)?
ON_NOTIFY(XTP_NM_HEADER_RCLICK, ID_REPORT_CONTROL, OnReportColumnRClick)?
ON_NOTIFY(NM_KEYDOWN, ID_REPORT_CONTROL, OnReportKeyDown)某个键被按下
我想XTP_NM_HEADER_RCLICK应该是列标题右击事件吧,于是我添加此消息响应,并添加了头文件XTPReportControl.h,但编译error C2065: 'XTP_NM_HEADER_RCLICK' : undeclared identifier。
由于初用XTreme Toolkit,实在不知道怎么回事,请高手指点一下,谢谢啦~
ON_NOTIFY(NM_CLICK, ID_REPORT_CONTROL, OnReportItemClick)//鼠标单击列表行事件
ON_NOTIFY(NM_RCLICK, ID_REPORT_CONTROL, OnReportItemRClick)//鼠标右键单击列表行事件
ON_NOTIFY(NM_DBLCLK, ID_REPORT_CONTROL, OnReportItemDblClick)//鼠标单击列表行事件
ON_NOTIFY(XTP_NM_SHOWFIELDCHOOSER, ID_REPORT_CONTROL, OnShowFieldChooser)?
ON_NOTIFY(XTP_NM_HEADER_RCLICK, ID_REPORT_CONTROL, OnReportColumnRClick)?
ON_NOTIFY(NM_KEYDOWN, ID_REPORT_CONTROL, OnReportKeyDown)某个键被按下
我想XTP_NM_HEADER_RCLICK应该是列标题右击事件吧,于是我添加此消息响应,并添加了头文件XTPReportControl.h,但编译error C2065: 'XTP_NM_HEADER_RCLICK' : undeclared identifier。
由于初用XTreme Toolkit,实在不知道怎么回事,请高手指点一下,谢谢啦~
如果不想自动排序那么调用CXTPReportColumn::SetSortable();
我现在的意思是想覆写CXTPReportControl的左击排序事件,查找了一下XTP_NM_REPORT_HEADER_也只有右击RCLICK宏。我又找到了XTP_NM_REPORT_SORTORDERCHANGED消息宏,这个就是列标题左击排序事件,可以添加这个消息处理,则在左击排序同时添加自己的处理。问题是,我现在想在左击列标题时不做排序,而作自己的处理,这个就不知道怎么办了?
再重载CXTPReportControl,在你重载的CXTPReportControl的构造函数中调用你自己的CXTPReportHeader