下沙论坛

 找回密码
 注册论坛(EC通行证)

QQ登录

QQ登录

下沙大学生网QQ群8(千人群)
群号:6490324 ,验证:下沙大学生网。
用手机发布本地信息严禁群发,各种宣传贴请发表在下沙信息版块有问必答,欢迎提问 提升会员等级,助你宣传
新会员必读 大学生的论坛下沙新生必读下沙币获得方法及使用
查看: 5614|回复: 3
打印 上一主题 下一主题

人都死光了??? WTL问题!!!

[复制链接]

该用户从未签到

跳转到指定楼层
1
发表于 2005-5-4 12:19:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一个准备用来SubClass的WTL 控件类
& X" r" A, @! R3 U: d/ f  D#include < ATLTYPES.H >, C8 h4 W6 `; ?2 Q( ?0 P" Y7 D
class CWTLFileListCtrl : public CWindowImpl < CWTLFileListCtrl ,CListViewCtrl >
" l+ F/ N7 c) P7 `( v$ Q{. k* N6 D4 }' F5 o  l) W3 ^% l9 v
BEGIN_MSG_MAP_EX(CWTLFileListCtrl)6 e7 j! d9 a1 q( {- r' G( H
  MSG_WM_LBUTTONUP(OnLButtonUp)" s( }9 w; S3 ?( T$ _& C
END_MSG_MAP()
) x0 [% u& Z' E9 J' M/ N/ Wpublic:; x3 o5 @6 Y. ]7 W, L* N: W
CWTLFileListCtrl(void);
. f( I  r9 j" @~CWTLFileListCtrl(void);, R8 l2 j- r% f3 z. E
void OnLButtonUp(UINT flag, CPoint pt);
6 G' c4 Q- x" X+ z+ B6 V};
: E* J2 C$ k5 _) @为什么 无法响应 WM_LBUTTONUP 消息,反而响应的是  WM_LBUTTONDBLCLK ??
$ i! K2 @# e4 C8 e) P& k! ?WTL版本 7.5
& n- _; C6 F! q1 _- A2 `
[此贴子已经被作者于2005-5-4 12:22:15编辑过]

/ Z/ }6 G8 k' A+ u0 p+ o( z' L$ W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 顶 踩
  • TA的每日心情
    奋斗
    2015-9-17 00:58
  • 签到天数: 1 天

    [LV.1]初来乍到

    2
    发表于 2005-5-4 15:45:00 | 只看该作者

    你也开始比WYL吸引了啊

    你说的问题一般来说这是不可能的。

    在WTL中这两个消息的定义的确在一起,如下:

    #define MSG_WM_LBUTTONUP(func) if (uMsg == WM_LBUTTONUP) { SetMsgHandled(TRUE); func((UINT)wParam, CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); lResult = 0; if(IsMsgHandled()) return TRUE; } * L+ g2 R% z' h0 K; R$ o! t. f#define MSG_WM_LBUTTONDBLCLK(func) if (uMsg == WM_LBUTTONDBLCLK) { SetMsgHandled(TRUE); func((UINT)wParam, CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); lResult = 0; if(IsMsgHandled()) return TRUE; }

    而 IsMsgHandled 中是判断 m_bMsgHandled 这个bool变量(m_bMsgHandled 是BEGIN_MSG_MAP_EX中定义的),除非你在 OnLButtonUp 函数中将这个辩论设置为 false 了,那么自然会运行到 MSG_WM_LBUTTONDBLCLK(func) 。但是如果说直接运行到 MSG_WM_LBUTTONDBLCLK 那么除非满足 if (uMsg == WM_LBUTTONUP) 否则怎么可能?(难道你的 WTL摸板的代码被修改了?)

    另外你的代码里没有 定义 WM_LBUTTONDBLCLK ,你怎么知道“反而响应的是 WM_LBUTTONDBLCLK ”??是跟出来的吗?

    该用户从未签到

    3
     楼主| 发表于 2005-5-4 17:06:00 | 只看该作者

    开始因为只有我双击的时候才响应,所以我以为响应了双击消息

    后来由试了一下 WM_LBUTTONDOWN,倒是没有问题

    还有WM_RBUTTONUP 和 WM_LBUTTONUP 问题一样,只有连续快速的按2次(差不多就是双击,不过右键没有双击的消息吧)才会响应一次,按1次不会响应

    该用户从未签到

    4
     楼主| 发表于 2005-5-4 19:38:00 | 只看该作者

    看来是控件本身的问题,鼠标一次点击不产生BUTTONUP消息……

    MFC也一样( I0 w: p/ f$ e/ \5 E. `+ Q2 m2 u
    [此贴子已经被作者于2005-5-5 0:08:54编辑过]
    0 p! M* M. X( u% O. E( E

    本版积分规则

    关闭

    下沙大学生网推荐上一条 /1 下一条

    快速回复 返回顶部 返回列表