采用文挡和视结构,在程序中使用一个空间,CMIS m_mis;
在View的OnCreate()中m_mis.Create(**);
同时在OnSize()中改变该控件大小,然后响应菜单命令,使用也顺利。
现在需要响应OnLButtonDown()事件,
直接利用Wizard添加WM_LBOTTONDOWN消息响应事件,
结果,窗口中无法响应该左键操作?没有取道该控件的事件??如何取得呢??在基于对话框程序时,点击该控件能够看到MISControl控件自己的事件,其中也有LBUTTONDOWN,只是如何取得呢???如何添加该事件响应??
(现在需要文档视结构了,高手指点!)感谢!
在线等!!

解决方案 »

  1.   

    CWnd::OnParentNotify 更改
    与 OnCommand 一样,在重写 OnParentNotify 的应用程序中仔细检查并修改任何代码,使它正确解压缩 lParam 中的值。OnParentNotify 的 16 位重写将成功地编译,但不会正确地执行。框架带下列参数调用 CWnd::OnParentNotify 成员函数:afx_msg void OnParentNotify( UINT message, LPARAM lParam );在两种情况中为子窗口的父级调用 OnParentNotify 成员函数:在子窗口上单击鼠标时,和当创建或销毁子窗口时。当 message 参数等于 WM_CREATE 或 WM_DESTROY 时,框架的 16 位 lParam 封装将子窗口句柄放在低序位字中,并将子窗口标识符放在高序位字中。对于 32 位框架,子窗口句柄已被扩展,现在占据 lParam 的所有空间;子窗口标识符不可用。如果 OnParentNotify 中的 Win32 代码需要子窗口 ID,则像这样检索它:CWnd* pChild = FromHandle( (HWND)lParam );
    int nID = pChild->GetDlgCtrlID();
    在本例中,FromHandle 返回附加到子窗口句柄的 CWnd 对象。GetDlgCtrlID 成员函数返回子窗口 ID。也可以通过将子窗口句柄直接传递到 Windows GetDlgCtrlID 函数来检索子窗口 ID,但是上述代码也检索指向子 CWnd 对象的指针。pChild 返回的指针是临时的,不应在 OnParentNotify 的范围之外存储使用。
      

  2.   

    在你的视类映射OnParentNotify消息,在这个消息函数中可以捕获该类子窗口的鼠标单击事件。
      

  3.   

    在你的视类映射OnParentNotify消息,在这个消息函数中可以捕获该类子窗口的鼠标单击事件
    ?????????????????????????后面还要实现左肩放开/右键按下/放开等映射
    是不是实现起来比较麻烦了???
      

  4.   

    在你的视类映射OnParentNotify消息,在这个消息函数中可以捕获该类子窗口的鼠标单击事件。在消息函数中,你可以判断message是否等于WM_LBOTTONDOWN、WM_LBUTTONDBLCLK来检查鼠标的左键是否按下,如果是,就进行你的处理,这不就可以实现你所需要的要求了吗。
      

  5.   

    http://www.vczx.com/article/show.php?id=398
    这个势力用的是什么方法???
      

  6.   

    在IDE中选中你的类视,鼠标右键点击你的那个视图类,在弹出的菜单中选择“消息”,在消息列表框中选“WM_PARENTNOTIFY”后,添加并编辑,就会自动加好所以的映射和函数,并且直接跳到这个函数中让你编辑代码了。