可能有点深度!需要比较熟悉COM的大侠!帮帮忙! 用Hook不知道行不行。试试看吧。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我这里可以啊!我的COM是ATL做的一个Full Control,弹出一个模态对话框,上面用了一个WebBrowser控件,我重载了CWebBrowser2的OnMouseMove,没问题的。 to:sxbyl 谢谢,我试试。 谢谢两位。 不过觉得用Hook并不合理,应该有解决的办法。 另外控件是用#import 引入的,在COM里面用控件的事件需要其它办法,并不是很简单了。 哦……你的控件是#import引入的,这个可能不一样,有时间我再去试试,现在反正是没时间了 是不是消息处理函数在消息映射表里放错了位置?又#import引入控件后你是如何创建这个控件的啊? Use ATL1。首先实现事件接口。class CYourCtrlEventImp:public CComObjectRoot,public IYourCtrlEvent{//响应事件函数...{2。CComObject<CYourCtrlEventImp> *ptrEvent = new CComObject<CYourCtrlEventImp>;CComPtr<IUnknown> ptrEvent;DWORD dwCookie;hr = AtlAdvise(ptrYourCtrl, ptrEvent, DIID_IYourCtrlEvent, &dwCookie); See msdn article SAMPLE: AtlSink Uses ATL to Create a Dispinterface Sink 谢谢bfsn!终于有人给出了正确答案。我已经实现了过了,正准备删除贴子的时候见到了大侠,能能再帮我一下,看看这个问题:1、(插入ATL对象的时候有一个对话框类)我在上面加入了一个LIST控件,我打算用一个成员变量控制它,可是如果用类向导的话就会生成一个从CDialog继承下来的新类,使用了和一开始创建的对话框同样的资源ID,成员变量就加在了新类里面,这样一来我该如何控制这个LIST?2、如何在COM里面创建一个无模式对话框,如果MFC没有的话? 各位大哥,介绍几本com的入门书吧谢过 to w12: 1.使用Api or 宏。 See Msdn article "List View Control Macros" 2.::CreateDialog or CDialogImpl::Create 谢谢bgsn的回答,我本打算用SendMessage来处理,现在知道了更好的方法!现在我只是对为什么会产生一个从继承的新类迷惑不解,不知道这样一来会有什么用处?能给我解释吗,分全是你的,不管对与否! VC class Wizard 还不支持ATL的对话框类,而仅仅支持MFC。 所以,ATL对话框中的控件与属性映射无法实现。假如你不惜牺牲ATL代码小的优点,你可以使用MFC的CDialog;否则,就必须使用API或者ATL的CDialogImpl. 谢谢,我明白了,看来很多东西应该使用Api 来完成。 如果你用mfc,你可以用class wizard映射事件,如果用atl,对不起,自己写代码映射 我并没打算用MFC。MFC对COM的支持不多,写出的组件也臃肿。 完成端口(IOCP)不是有内置的线程池么,为什么还要启动N个WorkThread? 跪求解答啊 首次值夜班,特此留念 access 数据库如何取得某一列的合??? 关于界面编程的问题 请问如何编写配置文件?加急!!!!!!!!! 来者有分:Win2000提供的新函数是不是只有装vc7才能使用 可用分取之于论坛,用之于大家,送分!!!soandor(北极熊) 进来领多点!! QueryPerformanceCounter的问题 mfc怎么给几个子系统分配IP地址和端口? 请问各位大虾,在VC中怎样执行DOS命令行、及批处理? 关于COM程序的发布版本(ATL)
我的COM是ATL做的一个Full Control,弹出一个模态对话框,上面用了一个WebBrowser控件,我重载了CWebBrowser2的OnMouseMove,没问题的。
谢谢,我试试。
不过觉得用Hook并不合理,应该有解决的办法。
另外控件是用#import 引入的,在COM里面用控件的事件需要其它办法,并不是很简单了。
1。首先实现事件接口。
class CYourCtrlEventImp:
public CComObjectRoot,
public IYourCtrlEvent
{
//响应事件函数
...
{2。CComObject<CYourCtrlEventImp> *ptrEvent = new CComObject<CYourCtrlEventImp>;
CComPtr<IUnknown> ptrEvent;
DWORD dwCookie;
hr = AtlAdvise(ptrYourCtrl, ptrEvent, DIID_IYourCtrlEvent, &dwCookie);
SAMPLE: AtlSink Uses ATL to Create a Dispinterface Sink
我已经实现了过了,正准备删除贴子的时候见到了大侠,
能能再帮我一下,看看这个问题:
1、(插入ATL对象的时候有一个对话框类)我在上面加入了一个LIST控件,我打算用一个成员变量控制它,可是如果用类向导的话就会生成一个从CDialog继承下来的新类,使用了和一开始创建的对话框同样的资源ID,成员变量就加在了新类里面,这样一来我该如何控制这个LIST?
2、如何在COM里面创建一个无模式对话框,如果MFC没有的话?
谢过
1.使用Api or 宏。 See Msdn article "List View Control Macros"
2.::CreateDialog or CDialogImpl::Create
现在我只是对为什么会产生一个从继承的新类迷惑不解,不知道这样一来会有什么用处?
能给我解释吗,分全是你的,不管对与否!
假如你不惜牺牲ATL代码小的优点,你可以使用MFC的CDialog;否则,就必须使用API或者ATL的CDialogImpl.