Atl 消息问题 我有一个控件,在ie下使用的无窗体控件。继承IOleInPlaceObjectWindowlessImpl如何接受自定义消息呀能不能给个例子? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.shengfang.org/blog/p/0815vcatlocxusermsgCContainedWindow.php 让你的控件从CMessageMap继承,然后使用下面的消息映射宏来接收消息BEGIN_MSG_MAP(...) // 在这里添加宏来处理所有消息END_MSG_MAP()从IOleInPlaceObjectWindowlessImpl 继承的无窗口控件都可以通过消息映射直接响应消息 0815vcatlocxusermsgCContainedWindow.php的例子我找过,好像不可以。补充一下我的问题,我要说的是,我要向控件自身sendmessage,然后响应。在sendmessage时,如何获得hwnd呢? 向容器发消息,从容器中获得HWND 楼上的大哥,能不能详细一些呀。我的控件是在ie中使用的,容器是什么呢?那hwnd应该是什么呢?另外问一下,控件如何相应发向容器的消息? 发往容器的消息都会转移到控件中,上面已经解释怎么接收消息了。因为控件是无窗口的,要给控件发消息,就必须从它的容器中获得HWND,调用IOleInPlaceSiteWindowless::GetWindow(&hwnd),实际上是调用IOleWindow::GetWindow,因为是从IOleWindow继承的,它将取得容器嵌套树中“距离最近”的窗口。 我使用GetWindow方法时,只有当我点一下 控件后,才可以获得hwnd,不点不能获得hwnd, 应该是控件激活的事,这个如何解决呢?要实现什么接口,或编写什么代码么? 如何能自动激活呢?我单独建了一个atl控件,于我的原来的继承接口一样,结果可以自动激活。但是当我把鼠标移动到新的控件上时,仍提示我“单击”来激活控件。不知道哪方面会影响控件的激活 如果是ActiveX控件,在IE7下必须先激活,再使用。 解决了,不知到什么原因,我做的其他的控件可以。我对比了一下,好像是.rgs文件中有一点不同。修改了后就可以了。谁能解释一下?晚上结贴 关于ASSERT_VALID_STRING未定义错误 关于MP3文件操作 哪个效率高? 读乱码文件,急急急!!!!!!! SELECT与多线程结合但只能发送不能接收 使用udp发送广播数据,发送出错,请前辈帮忙! 谁要《软件设计文档国家标准》? 请问怎样写这个文件? 继续挑战指针极限 C#调用VC写的DLL出现的问题 用VC6开发,用ODBC连接,如何读取和保存LongBinary数据? 来个人帮个忙哈
BEGIN_MSG_MAP(...)
// 在这里添加宏来处理所有消息
END_MSG_MAP()从IOleInPlaceObjectWindowlessImpl 继承的无窗口控件都可以通过消息映射直接响应消息
的例子我找过,好像不可以。补充一下我的问题,
我要说的是,我要向控件自身sendmessage,
然后响应。在sendmessage时,如何获得hwnd呢?
那hwnd应该是什么呢?另外问一下,控件如何相应发向容器的消息?
因为控件是无窗口的,要给控件发消息,就必须从它的容器中获得HWND,调用IOleInPlaceSiteWindowless::GetWindow(&hwnd),实际上是调用IOleWindow::GetWindow,因为是从IOleWindow继承的,它将取得容器嵌套树中“距离最近”的窗口。
只有当我点一下 控件后,才可以获得hwnd,
不点不能获得hwnd, 应该是控件激活的事,这个如何解决呢?
要实现什么接口,或编写什么代码么?
但是当我把鼠标移动到新的控件上时,仍提示我“单击”来激活控件。不知道哪方面会影响控件的激活
不知到什么原因,我做的其他的控件可以。
我对比了一下,好像是.rgs文件中有一点不同。
修改了后就可以了。谁能解释一下?晚上结贴