用ATL手法来实现接口设计

原创 2004年07月11日 11:12:00

给出简单例子,体现一下设计思路

接口:

IPlatform: IUnknown

IView: IPlatform

IPicView: IView

---------------------------------

IContorl: IPlatform

IToolbarCtl: IContorl

=======================================

实现:

/////////////////////////////////////////////////////////////////////////////
// IPlatformImpl
template <class T>
class ATL_NO_VTABLE IPlatformImpl :
public T
{
public:

xxxx // IPlatform 的方法

}

/////////////////////////////////////////////////////////////////////////////
// IViewImpl
template <class T, class I>
class ATL_NO_VTABLE IViewImpl :
public T,
public I

{
 BEGIN_MSG_MAP(IViewImpl)
  MESSAGE_HANDLER(WM_ERASEBKGND , OnEraseBkGnd)
 END_MSG_MAP()
 
 
public:
 DECLARE_WND_CLASS("PLATFORM_VIEW")
 yyyy // IView的方法

}

//////////////////////////////////////////////////////////////////////////////////

class CPicView :
 public IViewImpl< CWindowImpl<CPicView>, IPlatformImpl<IPicView> >,
 public CComObjectRoot,
 public CComCoClass<CPicView>,

 

vijos1655萌萌的糖果博弈

//这个题是我今天做一道题,发现自己不会博弈论,所以去hzwer上找博弈论题,第一题是这个,发现这个题我看题面都看不懂。。。题目已经写出来了,这是一道博弈论题 根据wzy 大佬的说法,博弈论题先找规...
  • suxuyu01
  • suxuyu01
  • 2017年12月28日 00:37
  • 35

Vijos 1655萌萌的糖果||博弈

https://vijos.org/p/1655**背景** 用糖果来引诱小朋友学习是最常用的手法,绵羊爸爸就是用糖果来引诱萌萌学习博弈的。**描述** 他把糖果分成了两堆,一堆有A粒,另一堆有B...
  • fd_xuan
  • fd_xuan
  • 2015年12月03日 11:11
  • 565

使用ATL创建简单ActiveX控件(三) —— 添加连接点

创建过程以VS2010为例,分三篇(创建ATL项目、添加方法/属性和枚举、添加连接点)演示。本篇演示添加连接点。 传送门: 《使用ATL创建简单ActiveX控件(一) —— 创建ATL项目 》 ...
  • mrxyz098
  • mrxyz098
  • 2015年09月20日 14:06
  • 2953

用户接口设计的20条原则

用户接口设计的20条原则
  • kaition
  • kaition
  • 2017年12月14日 13:38
  • 91

用VS ATL工程开发播放Gif图片控件的步骤

1   创建解决方案 创建一个空的解决方案,名称GifSolution。将来包含控件项目和测试项目。 2   创建ATL项目 解决方案视图-右击解决方案-添加-新建项目,弹出的对话框中选ATL项...
  • chenlycly
  • chenlycly
  • 2014年04月20日 10:49
  • 1576

socket编程UDP客户端原理简介

UDP客户端的创建就很简单,直接创建一个套接字就可以发送/接收数据了。步骤: 初始化套接字(WSAStartup)–>创建UDP客户端套接字(socket)–>发送/接收数据(sendto,recv...
  • qq_18297675
  • qq_18297675
  • 2016年04月09日 19:13
  • 466

8.ATL实现简单的COM

本文演示了如何使用ATL开发简单的COM,同时对于ATL实现COM的原理给出了简要分析,对照博客和代码可掌握简单的ATL开发COM流程。...
  • wenzhou1219
  • wenzhou1219
  • 2016年07月16日 20:11
  • 1455

ATL容器之map

MAP是键值对应的控件在使用之前必须先包含定义 :mapm_map;mapm_map1;等等添加项:m_map.insert(pair(i,"项1")); m_map[i]=“项1”;//向MAP添加...
  • wangandy7811
  • wangandy7811
  • 2009年08月03日 16:43
  • 1669

C++设计:接口与实现分离

C++中的接口 C++中的接口一般设计为不包含成员变量的抽象类,这样就只有接口的功能。 如果接口类中包含了成员变量,那么势必会给派生带来麻烦。 不好的设计:接口与实现混合 class Shape { ...
  • ClamReason
  • ClamReason
  • 2016年12月09日 10:00
  • 1135

在ATL中怎样使用已有的IDL?

csdn一个朋友问了这个问题,问题是这样:已有A.idl 里面提供了一个接口 我想用ATL实现它。 import "A.idl" 直接编译的话,提示找不到A.h 怎么才能在编译的时候自动生成...
  • wangweixing2000
  • wangweixing2000
  • 2008年10月27日 15:50
  • 1377
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用ATL手法来实现接口设计
举报原因:
原因补充:

(最多只允许输入30个字)