• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 在ATL中除了创建自己的窗口接收消息以外,还有什么方法可以接收消息

在ATL中除了创建自己的窗口接收消息以外,还有什么方法可以接收消息

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了atl34砂轮,atl方形动力电池,atl80.dll官方下载,atl71.dll一键修复,atl71.dll修复等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 在ATL中除了创建自己的窗口接收消息以外,还有什么方法可以接收消息
描述:

在ATL中除了创建自己的窗口接收消息以外,还有什么方法可以接收消息


解决方案1:

search DispSink in msdn 
1. in header file
class ATL_NO_VTABLE CDispCtl : 
public CComObjectRootEx<CComSingleThreadModel>,
public IDispatchImpl<IDispCtl, &IID_IDispCtl, &LIBID_DISPCLIENTLib, /*wMajor =*/ 1, /*wMinor =*/ 0>,
public CComControl<CDispCtl>,
public IPersistStreamInitImpl<CDispCtl>,
public IOleControlImpl<CDispCtl>,
public IOleObjectImpl<CDispCtl>,
public IOleInPlaceActiveObjectImpl<CDispCtl>,
public IViewObjectExImpl<CDispCtl>,
public IOleInPlaceObjectWindowlessImpl<CDispCtl>,
public IPersistStorageImpl<CDispCtl>,
public ISpecifyPropertyPagesImpl<CDispCtl>,
public IQuickActivateImpl<CDispCtl>,
public IDataObjectImpl<CDispCtl>,
public IProvideClassInfo2Impl<&CLSID_DispCtl, NULL, &LIBID_DISPCLIENTLib>,
public CComCoClass<CDispCtl, &CLSID_DispCtl>,
public IDispEventImpl<1, CDispCtl, &DIID__IDispServEvents>
{
......................................
//Map used to sink events.
BEGIN_SINK_MAP(CDispCtl)
SINK_ENTRY_EX(1, DIID__IDispServEvents, 1, OnTransmit)
END_SINK_MAP()
};
2. in .cpp file
STDMETHODIMP CDispCtl::OnTransmit(VARIANT data)
{
if(data.vt == VT_BSTR)
{
VariantClear(&m_OutText);
VariantCopy(&m_OutText, &data);
}
FireViewChange();
return S_OK;
}
You will receive notification from interface whose IID is DIID__IDispServEvents

解决方案2:

Refer to IDispEventImpl

解决方案3:

看看发送消息的函数SendMessage,第一个参数就是窗体句柄

解决方案4:

消息都是通过窗体句柄传递的阿
如果你想自己传递可以通过回调函数


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • ATL怎么实现可变参数的接口?
  • 怎样用ATL写一个含有其它组件的进程外COM
  • ATL7中加入socket的头文件编译出错
  • 在ATL工程MFC窗口调用Create失败(注:我的ATL工程支持MFC)
  • ATL正则表达式验证遇到中文出现异常!
  • 关于ATL做复合控件的问题
  • [讨论]ATL中的文本字符串,我该定义为什么类型
  • ATL开发指南第2版为什么所有的书店都没有卖的?电子版也没有
  • 大家一般都怎么打包Atl开发的ActiveX控件?
  • 求ATL解决方案

相关文章

  • 2017-06-04 在VC7中创建控件,控件的方法是否有个数限制?
  • 2017-06-04 在oncreate()函数中show出来的其它控件在编辑时怎么没有?
  • 2017-06-05 DLL转换为LIB
  • 2017-06-04 新手:请问ActiveX控件编写是怎么调试的?或者应该建立一个怎样的调试环境?
  • 2017-06-04 关于IStorage和IStream
  • 2017-06-04 紧急求助!!!
  • 2017-06-04 哪位有能力的朋友能帮我解决一下,先谢谢了
  • 2017-06-05 请不吝赐教!!!
  • 2017-06-05 用ATLCOMAppWizard自动生成的组件没有接口
  • 2017-06-04 一个以注册的ocx控件,能得到控件的路径吗

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 请大家推荐你们认为好用的进程管理器!!!谢谢!
    • VB和VC传递参数的问题?
    • ATL中如何输出动态字符串数组?
    • 23分!!!怎样让ATL与MFC共存
    • IE7怎么会这样??
    • 关于add-in的问题
    • 为什么这个在精华区的贴子打不开?
    • 在MFC中使用CArry这个数组
    • MSCOM串口通信控件使用遇到一个问题
    • 如何不用定时器实现多个EDIT数据的刷新。

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有