MFC 消息流程 处理的问题 (中级)

sock5 2006-03-27 04:43:00
原来的程序这样,好使
CMydlg : public CDialog
{
CXTPReportControl m_wndReport;
afx_msg void OnReportBeginDrag(NMHDR * pNotifyStruct, LRESULT * result);
...
}
.cpp
BEGIN_MESSAGE_MAP(CMydlg,CDialog)
ON_NOTIFY(LVN_BEGINDRAG, IDC_REPORT, OnReportBeginDrag)
END_MESSAGE_MAP()
这样做可以正常执行这个开始拖拽事件,但是我稍微小改了一下,将事件放到了子控件类中,这个拖拽消息就不好使了,但是鼠标消息别的好使,说明消息循环没问题,但是却不支持这个拖拽事件了,应该怎么样解决?

CMyReportControl : public CXTPReportControl
{
afx_msg void OnReportBeginDrag(NMHDR * pNotifyStruct, LRESULT * result);
DECLARE_DYNAMIC(CMyReportControl) //使该窗口支持动态创建
DECLARE_MESSAGE_MAP() //使该窗口支持消息映射
...
}

CMydlg : public CDialog
{
CMyReportControl m_wndReport;
}

//并将消息循环进行了修改,但是不好使,大家帮忙看看是哪里出现问题了呢,注意一定要说关键的地方
IMPLEMENT_DYNAMIC(CMyReportControl, CXTPReportControl)
IMPLEMENT_DYNAMIC(CMyDlg, CDialog)

BEGIN_MESSAGE_MAP(CMyReportControl, CXTPReportControl)//这里的消息流向必须从父类流向子类,否则控件不正常

ON_NOTIFY(LVN_BEGINDRAG, IDC_REPORT, OnReportBeginDrag) //开始拖拽消息
ON_WM_MOUSEMOVE()
END_MESSAGE_MAP()

BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
END_MESSAGE_MAP()

...全文
181 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xqk 2006-04-04
  • 打赏
  • 举报
回复
是啊是啊,GXGX
sock5 2006-04-04
  • 打赏
  • 举报
回复
我知道怎么回事儿了,好像在建立子类的时候,要响应这个自定义子类的通告消息,就必须使用SubClassDlgItem或SubClassDlgWindow 将其与控件ID关联后,才能使自己派生的控件响应通告消息!

不过我已经用别的方法解决了,谢谢楼上各位大力支持
Snow_Ice11111 2006-03-30
  • 打赏
  • 举报
回复
打错了,是"=LVN BEGINDRAG"消息。
Snow_Ice11111 2006-03-30
  • 打赏
  • 举报
回复
同意楼上ydfivy(我就是一送外卖的)朋友的,事件处理的添加方法不对。在MFC ClassWizard中正确添加派生类的"=LVN BINGDRAG"消息试试。
蒋晟 2006-03-30
  • 打赏
  • 举报
回复
use ON_NOTIFY_REFLECT
see
MFC Library Reference

TN062: Message Reflection for Windows Controls
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfcnotes_TN062.asp
cai114 2006-03-30
  • 打赏
  • 举报
回复
帮你UP
一个傻冒 2006-03-27
  • 打赏
  • 举报
回复
CMyReportControl中有OnReportBeginDrag函数体吗?

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧