3140|6

72

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

通过触摸屏单击列表框,列表框有时收不到单击消息 [复制链接]

我用鼠标单击列表框的任意行,列表框都可以收到单击消息并相应,但通过触摸屏却不行了,有时能响应,有时不能,不知是什么原因,哪位遇到过这样的问题?我的触摸屏已经校准了。

最新回复

通过PreTranslateMessage截获并打印消息,如果通过触摸屏点击列表框有响应,打印如下语句: ********PreTranslateMessage,msg=0x201******* OnClickMethodList start,nItem=3... OnClickMethodList end... ********PreTranslateMessage,msg=0xf******* ********PreTranslateMessage,msg=0xf******* ********PreTranslateMessage,msg=0x200******* ********PreTranslateMessage,msg=0x200******* ********PreTranslateMessage,msg=0x113******* ********PreTranslateMessage,msg=0x113******* 如果通过触摸屏点击列表框没有响应,则打印如下语句: ********PreTranslateMessage,msg=0x201******* ********PreTranslateMessage,msg=0x202******* ********PreTranslateMessage,msg=0x200******* ********PreTranslateMessage,msg=0x113******* 通过打印语句可以得知,此时消息没有继续往下传递到列表框,具体为什么盼望高手来解答。我现在在PreTranslateMessage里做了一些处理,来规避这个问题:         if(pMsg->hwnd == m_MethodList.m_hWnd && pMsg->message == WM_LBUTTONDOWN)         {                 LVHITTESTINFO LVHitTestInfo;                                 LVHitTestInfo.pt = pMsg->pt;                 m_MethodList.ScreenToClient(&LVHitTestInfo.pt);                 LVHitTestInfo.flags=0;                 LVHitTestInfo.iItem = LVHitTestInfo.iSubItem = -1;                                 //判断点击的位置是否有item                 int nReturn = ListView_SubItemHitTest(m_MethodList.m_hWnd, &LVHitTestInfo);                 if(nReturn != -1)                 {                      //具体的处理                  }                                 }// 要把OnClickMethodList里的处理给屏蔽掉,避免重复处理。 哪位高手来解答这个奇怪的问题,多谢了。  详情 回复 发表于 2010-2-25 16:46
点赞 关注

回复
举报

70

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
补充一下,通过触摸屏单击时,NM_CLICK这个消息虽然没有响应,但该行却高亮显示了,怪异不?
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
没搞过,不清楚。帮楼主顶一下吧
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

4
 
是不是 你的列表框 对应的控件 仅实现了 鼠标触发事件,没用支持按键触发事件?

MARK.
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

5
 
列表框接收的是下面两个消息吧:   


case LBN_DBLCLK:

case LBN_SELCHANGE:
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

6
 
LBN_DBLCLK,双击消息,不可能吧,我只是点击一下触摸屏?
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(中级)

7
 
通过PreTranslateMessage截获并打印消息,如果通过触摸屏点击列表框有响应,打印如下语句:
********PreTranslateMessage,msg=0x201*******
OnClickMethodList start,nItem=3...
OnClickMethodList end...
********PreTranslateMessage,msg=0xf*******
********PreTranslateMessage,msg=0xf*******
********PreTranslateMessage,msg=0x200*******
********PreTranslateMessage,msg=0x200*******
********PreTranslateMessage,msg=0x113*******
********PreTranslateMessage,msg=0x113*******

如果通过触摸屏点击列表框没有响应,则打印如下语句:
********PreTranslateMessage,msg=0x201*******
********PreTranslateMessage,msg=0x202*******
********PreTranslateMessage,msg=0x200*******
********PreTranslateMessage,msg=0x113*******
通过打印语句可以得知,此时消息没有继续往下传递到列表框,具体为什么盼望高手来解答。我现在在PreTranslateMessage里做了一些处理,来规避这个问题:
        if(pMsg->hwnd == m_MethodList.m_hWnd && pMsg->message == WM_LBUTTONDOWN)
        {
                LVHITTESTINFO LVHitTestInfo;
               
                LVHitTestInfo.pt = pMsg->pt;
                m_MethodList.ScreenToClient(&LVHitTestInfo.pt);
                LVHitTestInfo.flags=0;
                LVHitTestInfo.iItem = LVHitTestInfo.iSubItem = -1;
               
                //判断点击的位置是否有item
                int nReturn = ListView_SubItemHitTest(m_MethodList.m_hWnd, &LVHitTestInfo);
                if(nReturn != -1)
                {
                     //具体的处理
                 }
                       
        }//
要把OnClickMethodList里的处理给屏蔽掉,避免重复处理。
哪位高手来解答这个奇怪的问题,多谢了。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表