急!如何在其他类或模块中触发我定义的事件?一经解决马上给分! 在MFC ActiveX Control工程中,我想在控件类以外的类或者任意模块中触发我定义的事件,请问如何办到??????一经解决马上给分!分不够再加!好急!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个解决方法是用消息通知将你的控件View类的m_hWnd可见然后做一些自定义的Message Handler然后其他类通过SendMessage提交MessageMessage Handler中Fire事件万不可再其他线程中Fire事件,必须在主线程中Fire事件 我的控件没有View类啊,如何找到?能不能说的详细点,不好意思我做ActiveX还是头一回,另外我的事件是再一个独立的线程中触发,这样会有什么问题么?这个问题有没有别的办法触发? 在你的控件中添加消息处理事件,并且把它fire出来。这样在外部调用的时候就可以处理该事件了! 哦,我说的是用ATL做ActiveX控件了MFC的ActiveX控件我不是很熟悉,但是那个Ctrl的类也是由hwnd的就是说你也可以对他SendMessage在ATL ActiveX控件中,不在主线程激发事件会造成该控件用vb调用时,会有问题。MFC的不知道。以下给你我在ATL中的实现在BEGIN_MSG_MAP(xxx)和END_MSG_MAP之间加入 MESSAGE_HANDLER(DMC_MOTION, OnMotion)然后处理函数 LRESULT OnMotion(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) { if(m_bIsMotionDetect && m_bIsMotionAlarmNotify) Fire_OnAlarmChange(MOTION_ALARM_PORT, 1, 0); return 0; }使用时SendMessage(pCamView->m_hWnd, DMC_DIGITAL, ntohs(pEvNotifyMsg->EventArgument), 0);当然,DMC_DIGITAL是预先定义好了,比如WM_USER + 101 to:xiaohyy(醉大饿极) 连接点是什么? 我在使用我定义的事件DataArrival的时候总是出现下面的错误,而且我定义的Implementation就是DataArrival(相当于一般常用的FirexXXX).怎么办啊?好急!!!--------------------Configuration: NOPOPhone - Win32 Debug--------------------Compiling...MainProcess.cppD:\My Source\TelSys\NOPOPhone\MainProcess.cpp(88) : error C2248: 'DataArrival' : cannot access protected member declared in class 'CNOPOPhoneCtrl' d:\my source\telsys\nopophone\nopophonectl.h(58) : see declaration of 'DataArrival'D:\My Source\TelSys\NOPOPhone\MainProcess.cpp(88) : error C2352: 'CNOPOPhoneCtrl::DataArrival' : illegal call of non-static member function d:\my source\telsys\nopophone\nopophonectl.h(58) : see declaration of 'DataArrival'NOPOPhoneCtl.cppGenerating Code...Error executing cl.exe.NOPOPhone.ocx - 2 error(s), 0 warning(s) 有没有人能解决啊?这个问题我想不难啊?难道大家都没用MFC写过控件?????如果写过那你们的事件都是怎么触发的啊?总不能把一万多行代码都写在一个模块里吧!!??? 谁能给提供一个MFC做的客户存档源码 求com 技术内幕光盘 新手的简单问题求救: 在MFC的对话框模式下显示JPG图象,怎么办?急!!! 在线等(最好有代码) 谢谢大家! 如何解决ScrollView快速滚动时的闪烁问题 定义了一个COMBO BOX CSocket在多线程里的编程,高手请进,内附程序!!!!!!!!!! 关于线程的控制问题:明天早上结帖 如何让 formview 在多视图中互相取代,华为考试 LoadLibrary的问题 vc操作excel表格 老是报”无效索引“错误 如何画一个半透明的区域 求助,怎样通过线城实现listbox的滚动显示?
将你的控件View类的m_hWnd可见
然后做一些自定义的Message Handler
然后其他类通过SendMessage提交Message
Message Handler中Fire事件
万不可再其他线程中Fire事件,必须在主线程中Fire事件
我的事件是再一个独立的线程中触发,这样会有什么问题么?
这个问题有没有别的办法触发?
就是说你也可以对他SendMessage在ATL ActiveX控件中,不在主线程激发事件会造成该控件用vb调用
时,会有问题。MFC的不知道。以下给你我在ATL中的实现
在BEGIN_MSG_MAP(xxx)和END_MSG_MAP之间加入
MESSAGE_HANDLER(DMC_MOTION, OnMotion)然后处理函数
LRESULT OnMotion(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
if(m_bIsMotionDetect && m_bIsMotionAlarmNotify)
Fire_OnAlarmChange(MOTION_ALARM_PORT, 1, 0); return 0;
}使用时
SendMessage(pCamView->m_hWnd, DMC_DIGITAL, ntohs(pEvNotifyMsg->EventArgument), 0);当然,DMC_DIGITAL是预先定义好了,比如WM_USER + 101
连接点是什么?
Compiling...
MainProcess.cpp
D:\My Source\TelSys\NOPOPhone\MainProcess.cpp(88) : error C2248: 'DataArrival' : cannot access protected member declared in class 'CNOPOPhoneCtrl'
d:\my source\telsys\nopophone\nopophonectl.h(58) : see declaration of 'DataArrival'
D:\My Source\TelSys\NOPOPhone\MainProcess.cpp(88) : error C2352: 'CNOPOPhoneCtrl::DataArrival' : illegal call of non-static member function
d:\my source\telsys\nopophone\nopophonectl.h(58) : see declaration of 'DataArrival'
NOPOPhoneCtl.cpp
Generating Code...
Error executing cl.exe.NOPOPhone.ocx - 2 error(s), 0 warning(s)