- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在CBuilder中实现拖放功能
在C++ Builder中实现拖放功能?Windows中的拖放功能大家一定很熟悉了,如文件的转移,拷贝等操作用鼠标轻轻一拖即可,在编写程序中有时也用到拖放,那么如何实现呢?现以C++ Builder5(简称CB5)为例,分析拖放功能的具体实现。一.工具条的拖放---- 要实现拖放功能,首先必须了解几个与拖放有关的属性和方法, 对于TControl控件,CB5提供了三个属性,DockSite,DragKind和DragMode。灵活运用这三个属性会得到意想不到的效果。这三个属性的意义是:---- DockSite:指定当前控件是否接受Drag-and-Dock类型的操作---- DragKind:拖放种类,分为dkDrag和dkDock两种---- DragMode:拖放模式,分为自动和手动模式两种---- 其中Dock操作是指某控件脱离它的Parent,转而成为另一个控件的Child,也就是两个控件合并。若某一控件的DockSite为True,表明它接受执行Dock操作的某控件,并成为它的Parent。---- 著名的Office工具条可以随意拖放,其实实现起来很简单:在Form上放一CoolBar控件,再在CoolBar控件上随意放几个ToolBar控件,它们的属性设置代码如下:CoolBar1.DockSite=true;ToolBar1.DragKind=dkDock;ToolBar1.DragMode= dmAutomatic;---- 其它ToolBar的属性设置与ToolBar1的属性设置相同,编译运行程序,拖动工具条试试,Cool极了吧。二、任何两上控件间的拖放---- 与此操作有关的几个函数有:---- BeginDrag:开始执行拖放操作,如果控件的DragMode为dmManual,则必须调用此函数,如果DragMode为dmAutomatic,则不用调用。---- OnDragOver:当被拖放的对象经过此控件时触发此事件,其中的参数Accept表示是否接受拖放的对象。---- OnDragDrop:当放下被拖放的对象时触发此事件。---- 下面举例说明拖放的实现过程:---- 在CB5中新建一工程,在Form1上放两个ListBox,分别命名为ListBox1,ListBox2,打开ListBox1的Items属性框,随便输入几行字符串。---- 其属性设置如下:ListBox1-MultiSelect=true;??// MultiSelect属性设为true,表示可以多选ListBox1-DragMode= dmAutomatic;ListBox2-MultiSelect=true;ListBox2-DragMode= dmAutomatic; //两个ListBox拖放事件相同,可以互相拖放ListBox2-OnDragOver= ListBox1DragOver;ListBox2-OnDragDrop= ListBox1DragDrop;ListBox2-OnStartDrag= ListBox1StartDrag;在头文件中设置两个int型变量CurIndex,NewIndex程序代码如下://-----------------------------------------------------------#include vcl.h #pragma hdrstop#include unit1.h#include FileCtrl.hpp//-----------------------------------------------------------#pragma package(smart_init)#pragma resource *.dfmTForm1 *Form1;//----------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner)????????: TForm(Owner){}//----------------------------------------------------------void __fastcall TForm1::ListBox1StartDrag(TObject *Sender,???TDragObject *DragObject){??????//开始执行拖放事件时记录ListBox-ItemIndex;??????CurIndex=((TListBox *)Sender)-ItemIndex;}//-
您可能关注的文档
- 新闻传播史论历年试题2004-2010.doc
- 危急值制度及程序.doc
- 浏览小分子库教程.doc
- 2、现场会议制度.doc
- 2010四级写1.doc
- 电磁感应课堂练习.doc
- 高考题中情态动词的用法.doc
- 雅思写作36个基础句型.doc
- 高三化学一轮实验复习测试题.doc
- ECG基础.识别.doc
- GB/T 46622.1-2025液压传动 螺纹插装阀安装连接尺寸 第1部分:米制螺纹.pdf
- 《GB/T 46622.1-2025液压传动 螺纹插装阀安装连接尺寸 第1部分:米制螺纹》.pdf
- 2025重庆渝海物业管理有限责任公司外包岗位招聘7人备考题库最新.docx
- 岳池县兴隆镇公开招聘社区网格员的备考题库最新.docx
- 2025湖南怀化市靖州县纪委监委选调11人备考题库最新.docx
- 2025年镇原县科技局下属事业单位招聘笔试参考题库附答案.docx
- 贵州国企招聘:2025中国人民财产保险股份有限公司贵州省分公笔试参考题库附答案.docx
- 2025年武汉铁路局集团招聘(180人)笔试参考题库最新.docx
- 2025重庆市应急管理局遴选公务员7人备考题库附答案.docx
- 赣州市人力资源有限公司公开招聘劳务派遣制工作人员备考题库附答案.docx
原创力文档


文档评论(0)