首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 高分求救,关于自定义windows消息映射,烦死了(急)
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • caiyan807
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-08-20 15:05:49 楼主
    我用mfc做了一个界面通过计算机控制相机拍照,通过自定义一些消息机制来储存照片到特定的位置,但是只能拍照,之后相机的数据传输灯一直处于闪烁状态,好像死机似的,只能拍但是存不了照片,也不知道错在哪了
    我在Dialog1.h文件中声明这么几个消息以及响应函数:
    消息:
    protected:
    static const UINT iImageReadyMsg;
    static const UINT iTransferProgressMsg;
    static const UINT iDeviceAddMsg;
    static const UINT iDeviceRemovedMsg;
    static const UINT iPropChangedMsg;
    响应函数:
      public:
            afx_msg LRESULT OnImageReady(WPARAM wParam, LPARAM lParam);
    afx_msg LRESULT OnTransferProgress(WPARAM wParam, LPARAM lParam);
    afx_msg LRESULT OnDeviceAdd(WPARAM wParam, LPARAM lParam);
    afx_msg LRESULT OnDeviceRemoved(WPARAM wParam, LPARAM lParam);
    afx_msg LRESULT OnPropertyChanged(WPARAM wParam, LPARAM lParam);

    在Dialog1.cpp中具体定义:

    消息定义:
    const UINT CDialog1::iImageReadyMsg = RegisterWindowMessage(MOCHADLL_IMAGEREADY);
    const UINT CDialog1::iTransferProgressMsg = RegisterWindowMessage(MOCHADLL_TRANSFERPROGRESS);
    const UINT CDialog1::iDeviceAddMsg = RegisterWindowMessage(MOCHADLL_DEVICEADD);
    const UINT CDialog1::iDeviceRemovedMsg = RegisterWindowMessage(MOCHADLL_DEVICEREMOVE);
    const UINT CDialog1::iPropChangedMsg = RegisterWindowMessage(MOCHADLL_PROPCHANGED);

    消息绑定:
    BEGIN_MESSAGE_MAP(CDialog1, CDialog)
    //{{AFX_MSG_MAP(CDialog1)
    ON_REGISTERED_MESSAGE(iImageReadyMsg,OnImageReady)
    ON_REGISTERED_MESSAGE(iTransferProgressMsg,OnTransferProgress)
    ON_REGISTERED_MESSAGE(iDeviceAddMsg,OnDeviceAdd)
    ON_REGISTERED_MESSAGE(iDeviceRemovedMsg,OnDeviceRemoved)
    ON_REGISTERED_MESSAGE(iPropChangedMsg,OnPropertyChanged)
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()

    具体响应函数定义:
    afx_msg LRESULT CDialog1::OnDeviceAdd(WPARAM wParam, LPARAM lParam)
    {
    OnButton1();

    return 0;
    }

    afx_msg LRESULT CDialog1::OnDeviceRemoved(WPARAM wParam, LPARAM lParam)
    {
    OnButton1();

    return 0;
    }

    afx_msg LRESULT CDialog1::OnImageReady(WPARAM wParam, LPARAM lParam)
    {
    ULONG32 lCam = (ULONG32)wParam;
    ULONG32 nObjHandle = (ULONG32)lParam;
    DownloadImage(lCam, nObjHandle);
       

    return 0;
    }
    afx_msg LRESULT CDialog1::OnTransferProgress(WPARAM wParam, LPARAM lParam)
    {
    return 0;
    }
    afx_msg LRESULT CDialog1::OnPropertyChanged(WPARAM wParam, LPARAM lParam)
    {
    ULONG32 ulCam = (ULONG32)wParam;
    ULONG32 ulProp = (ULONG32)lParam;

    if((LONG32)ulCam==m_nCam)
    {
    UpdateSettings(ulProp);
    }

    return 0;
    }


    请问大家,我到底错在哪了?已经想了两天了,脑袋都块炸了,救命啊
    80  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • caiyan807
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 15:14:541楼 得分:0
    这是所用到的dll的头文件
    #define MOCHADLL_DEVICEADD _T("MochaDeviceAdd")
    #define MOCHADLL_DEVICEREMOVE _T("MochaDeviceRemoved")
    #define MOCHADLL_IMAGEREADY _T("MochaImageReady")
    #define MOCHADLL_TRANSFERPROGRESS _T("MochaTransferProgress")
    #define MOCHADLL_PROPCHANGED _T("MochaPropertyChanged")
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • caiyan807
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 15:23:172楼 得分:0
    自己顶
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • caiyan807
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 15:40:273楼 得分:0
    up

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • lkjfeijfidosjf
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 16:03:394楼 得分:0
    该回复于2008-08-21 00:51:27被版主删除
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jimmytom
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 19:27:085楼 得分:0
    引用 4 楼 lkjfeijfidosjf 的回复:
    这个问题我以前也接触过,开始的时候我也找不到问题的原因,后来我进了一个技术交流群,这个群里的人挺多的,在里面可以沟通技术,你可以进去看一下.群号是:四`三`四`八`零`零`七`一。另外,这个群里可以接项目。


    本人最恨广告帖,尤其是打假广告,楼上的这句话我看到过,没想到今天再次看到,也是这种语气:“你的问题我也遇到过,然后在哪个群里解决的....”。多半你是在打广告,不知怎么,今天看到你这样打广告,让我觉得特别恶心,宣传群就直接宣传嘛,还说遇到过这种问题,楼上太虚伪了。  太虚伪了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • thankall
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 19:55:146楼 得分:0
    无力,帮顶!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • acpg1986
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 10:08:157楼 得分:0
    你自定义的几个消息是如何触发的,你要触发了相应事件才可以响应
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • pzhfei
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 10:44:448楼 得分:0
    楼上的说得对,要不然你就要在合适的地方的动用PostMessage()或SendMessage()
    来发送自定义的消息,否则的话消息响应函数是不会响应的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zoulie
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 10:48:379楼 得分:0
    你的消息响应函数执行没有,调式一下不就知道了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • shizhusz110
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 10:50:1010楼 得分:0
    没有触发,当然没响应
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jia_xiaoxin
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 10:59:2611楼 得分:0
    感觉问题是出在这:
    afx_msg LRESULT CDialog1::OnImageReady(WPARAM wParam, LPARAM lParam)
    {
    ULONG32 lCam = (ULONG32)wParam;
    ULONG32 nObjHandle = (ULONG32)lParam;
    DownloadImage(lCam, nObjHandle);
       

    return 0;
    }
    是不是没有建立接受数据的缓冲区啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • caiyan807
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 15:43:0512楼 得分:0
    downloadimage()函数里有缓冲,不过问题不在这里,感觉好像没有消息触发,因为跟踪这个函数根本没进
    引用 11 楼 jia_xiaoxin 的回复:
    感觉问题是出在这:
    afx_msg LRESULT CDialog1::OnImageReady(WPARAM wParam, LPARAM lParam)
    {
    ULONG32 lCam = (ULONG32)wParam;
    ULONG32 nObjHandle = (ULONG32)lParam;
    DownloadImage(lCam, nObjHandle);
       

    return 0;
    }
    是不是没有建立接受数据的缓冲区啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • cnzdgs
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 5

      2

      13

    发表于:2008-08-22 21:57:2113楼 得分:0
    从上面的代码看不出问题,你是怎么确定与消息映射有关的?你确定DLL的调用方法正确吗?调试看看程序执行到哪里不正常。
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved