当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 五、OLE拖放实现ix = o ns = "urn:schem
 

 

 ·一个智能指针的实现    »显示摘要«
    摘要: 一个智能指针的实现 用c++写程序的人都知道内存泄漏这个问题(除非他从来不动态分内存),对stl有了解的人都知道有auto_ptr这么个智能指针,可因为它只能有一个拥有权,所以不能支持标准容器,一直不太喜欢这点。能开发出一个共享访问的智能指针就好多了(这有点像windows内核对象)。所以,需要有个对象来管理计数问题,这个对象只能和要管理的指针共存亡,当有新的对象指向这块内存时只要把指......
 ·inf manufacturer section    »显示摘要«
    摘要: inf manufacturer section manufacturer章节用于识别这样一些厂商,该厂商的一个或者多个设备能够使用该inf文件进行安装。 该章节的语法结构为: [manufacturer] manufacturer-identifier [manufacturer-identifier] [manufacturer-identifier] 下......


Drag & Drop (二)

五.ole拖放实现

因为coledroptarget默认只对cview提供支持,所以如果要让其他的窗口支持拖放,我们必须同时对要支持拖放的窗口类与coledroptarget类进行派生.把对拖放操作具体进行处理的代码封装成派生窗口类的成员函数,然后重载coledroptarget中对应的五个虚函数,当它接收到拖放动作时,调用窗口派生类的处理函数即可.但这里有一个问题,就是我们怎么知道何时调用派生类的处理函数呢?答案是运用rtti技术.如果coledroptarget派生类收到的窗口指针类型,就是我们派生的窗口类,那么就调用它的处理函数,否则调用基类进行处理. 【程序编程相关:路由模拟——路由算法1的实现(路由基因类

mfc本身的cview类是支持拖放操作的,通过研究cview类的源码,大体知道它的实现原理是这样的:cview类中有一个coledroptarget类的对象,在视图窗口初始化时,调用coledroptarget类成员函数register(),以此在系统中注册该视图窗口为拖放接收窗口.当进行拖放操作的鼠标指针处于视图窗口范围内时,coledroptarge类会做出反应,它的ondragenter.ondragover.ondropex.ondrop等成员函数被依次调用,这些函数默认均是调用与其相对应的cview类成员函数ondragenter.ondragover.ondropex.ondrop等,程序员只需重载这些cview类成员函数,即可对拖动的过程及结果进行控制. 【推荐阅读:路由模拟——路由算法1的实现(结点集合类

第一个类名为clistctrlex,父类为clistctrl.添加完毕后,在clistctrlex的定义头文件中加入declare_dynamic(clistctrlex),在其实现文件中加入implement_dynamic(clistctrlex,clistctrl),这样就对clistctrlex类添加了rtti运行期类型识别(run time type information)支持. 【扩展信息:路由模拟——路由算法1的实现(路由计算类

首先生成一个对话框工程,添加二个新类.

第二个类名为coledroptargetex,父类为coledatatarget.

在clistctrlex中添加coledroptargetex类的对象,并添加下列公有虚函数的声明:

       virtual bool initialize();

       virtual dropeffect ondragover(cwnd* pwnd, coledataobject* pdataobject, dword dwkeystate, cpoint point);

       virtual dropeffect ondropex(cwnd* pwnd, coledataobject* pdataobject, dropeffect dropeffect, dropeffect droplist, cpoint point);

       virtual bool ondrop(cwnd* pwnd, coledataobject* pdataobject, dropeffect dropeffect, cpoint point);

       virtual void ondragleave(cwnd* pwnd);


...   下一页
 ·corba组件模型 (3)    »显示摘要«
    摘要: 续上。。 corba组件模型:第一部分,向组件式中间件(component middleware)演化 the corba component model, c/c++ users journal february 2004 douglas c. schmidt and steve vinoski cndeveloperw (ysf_gzb@21cn.net) 译 续上。。 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE