在CReportCtrl中点击list时的消息拦截
来源:互联网 发布:淘宝首页都设置在哪 编辑:程序博客网 时间:2024/06/08 07:02
该CReportCtrl来自codeproject上一位作者的作品,主要看中其中的checkbox效果,所以拿来使用进行显示,效果没那么炫,但足够我用的了。
在对其设置checkbox之后
m_listMenu.SetCheckboxeStyle(RC_CHKBOX_NORMAL); // Enable checkboxes在点击时可以实现勾选的效果,但是,若是要拦截勾选动作在该动作进行其他操作时,如何进行拦截呢。
我也在网上找了好久,虽然没有特别关于该list的拦截说明,但是经过其他的内容,实验了出来一点效果,至于是不是真的
符合原始的想法,那还不得而知,当前水平有限,若有错误请指出来。
利用ON_NOTIFY来拦截NM_CLICK消息,
ON_NOTIFY(NM_CLICK,IDC_LIST_MENU,OnCheckBox)在.h文件中定义
afx_msgvoidOnCheckBox(NMHDR * pNMHDR, LRESULT* pResult);然后进行编写
voidCMenuKeyView::OnCheckBox(NMHDR * pNMHDR, LRESULT* pResult){NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;const int COL = pNMListView->iSubItem;intnRow = pNMListView->iItem;intnCnt = m_listMenu.GetItemCount();int nState;if (COL==0 ){if(nRow>0 && nRow<nCnt){nState = m_listMenu.GetCheck(nRow);nState = !nState;SetMenuVal(nRow-1,nState);}}}根据命名可以看出来变量,一个是行,一个是列,还有一个是总行数。
而上面的命名,则是在调试时的变量值改变推测出来的,但是这个结构还有其他的变量,还不知道用途。
而在这个出来效果之前,我试着尝试了用cpoint点左边来定位当前位置进行判断的方法,但可惜不对,可能是我还缺少了什么地方的代码,若有人知道的话,不吝指点
// CPointpt;// GetCursorPos(&pt);// m_listMenu.ScreenToClient(&pt);// intitem;// UINTnFlag;// item = m_listMenu.GetNextItem(-1,LVNI_ALL|LVNI_SELECTED);
// m_listMenu.HitTest(pt,&nFlag);
这段代码的思路是不是正确的,我自己也不知道,因为没有得出想要的结果,所以暂时无从验证,若是后期有所得,在来修改下。
先记录下,若是在其他控件中也得对点击事件进行拦截,在继续记录吧
- 在CReportCtrl中点击list时的消息拦截
- 在WebService中如何创建自己的拦截器拦截SOAP消息
- 在Regular Dlls中拦截键盘消息
- 如何在点击sencha-touch-list中通过点击item获得所在的绑定字段
- 通过消息拦截达到在Delphi控件中屏蔽原有事件处理的一种方法
- 在一个消息响应函数中响应多个动态生成的按钮点击事件
- 在一个消息响应函数中响应多个动态生成的按钮点击事件
- MFC中点击ListControl时,第一次点击不响应NM_CLICK消息,第二次才响应的问题
- list中按钮点击事件在activity中处理
- sencha touch 响应在list的iteams中点击不同地方
- 网络消息的拦截
- TextView 中拦截点击事件
- 在CListView中添加点击右键消息响应函数!
- VC中拦截ESC消息
- Matplotlib 在绘画bar时, 鼠标响应点击 bar 的消息
- 拦截MPMoviePlayerController的点击事件
- WebView拦截点击的url
- siebel 在list applet 的列上绑定点击事件
- 动态生成table
- 碰到个字符串处理的sql,搞定了,记录一下
- 16个经典面试问题回答规律
- 【来自oschina】c++基础编程 拼图小游戏
- WCF、Net remoting、Web service概念及区别
- 在CReportCtrl中点击list时的消息拦截
- 基于ichartjs在android上使用HTML5实现各种图表的类库
- B+树的实现
- java中的随机数Random
- 【Android Advanced Training - 05】传输数据时避免电量的浪费[Lesson 1 - 看无线电波如何影响网络操作]
- HTML5基础,第3部分:HTML5 API的威力
- 1297. Palindrome
- #pragma data_seg介绍
- v$sysstat和v$sesstat区别