- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用c++ builder 创建具有吸附效果的窗口.doc
用c++ builder 创建具有吸附效果的窗口 在许多程序中,窗口可以被拖放到另一个窗口中,并溶合为一体,例如c++ builder中的Class Explorer与其它窗口就是典型一例,在c++ builder中,这种特性被称为窗口吸附。 在bcb中的许多组件都具有与吸附功能相关的属性,例如:DockSite属性、UseDockManage属性,以及DragKing属性,它的属性可以设置为dkDock。如果将这些属性值简单设置一下,窗口将自动具有吸附功能,不过这样的吸附功能非常死板,没有实用价值。下面笔者就给大家介绍一下如何在c++ builder中实现真正的窗口吸附效果。 一、设计一个主窗口 新建一工程,主窗体命名为MainForm,单元文件命名为Main。添加一个TMainMenu命名为MainMenu1,双击该主菜单添加两个子菜单分别为红色窗口和蓝色窗口,这两个子菜单分别用来显示不同颜色的窗口。接着在窗口的最右端添加一个宽度为0,高度为整个窗口高的Panel组件并命名为DockPanel,建立Panel组件是因为被吸附的窗口必须要有一个吸附区,这种吸附区可以是窗口,也可以是窗口化组件,如Panel。再在Panel右边添加一个Splliter组件,命名为VSplliter宽度设为4,高度为窗体的高度。建立Splliter组件是为了有效地建立被吸附窗口的间隔区,并且可以方便用户调整被吸附窗口所占据的宽度。(如图1所示) 二、设计被吸附窗口 作为主窗口的设计窗体,除了一般的属性设置外,有关Dock的属性均无需修改,只要将被吸附窗体的属性进行修改就可以了。 选择File | New Form命令,建立一个新窗体,将新窗体命令为DockWindow和吸附功能相关的属性修改如下:属性? ?? ?? ?? ?? ?? ? 值DockSite? ?? ?? ?? ? TrueDockKind? ?? ?? ?? ?dkDockDockMode? ?? ?? ? dmAutomatic在窗体中放置一个Memo组件,并将其Align属性修改为alClient,使其充满整个窗口区域。放置Memo组件的目的是使窗口在被吸附时有明显的边界特征,并且可以赋予窗口不同颜色。三、设计实现吸附功能实际上,产生吸附作用的并不是主窗体,而是主窗体中的Panel组件,所以Panel组件中与吸附功能有关的组件也必须和吸附窗口一样进行修改,修改值如上表所示。接着为Panel添加如下事件:OnDockOver、OnGetSiteinfo、OnDockDrop、OnUndock代码与解释如下://--------------------------------------------------------------------------------------void __fastcall TMainWin:ockPanelDockOver(TObject *Sender,TDragDockObject *Source, int X, int Y, TDragState State,bool Accept){Accept = (dynamic_castTDockableForm*(Source-Control) != NULL);? ? //??(1)if (Accept)? ?? ?? ?? ? // (2){Windows::TPoint TopLeft = DockPanel-ClientToScreen(Point(0, 0));? ?// (3)Windows::TPoint BottomRight = DockPanel-ClientToScreen(Point(this-ClientWidth / 3, DockPanel-Height));? ?// (4)Source-DockRect = Windows::TRect(TopLeft, BottomRight);??(5)}}//--------------------------------------------------------------------------------------解释:OnDockOver事件是在被吸附窗口拖动经过吸附面板时产生的,也就是说,当用户拖动被吸附窗口经过DockPanel组件时,就会产生这个事件。第(1)句作用是首先将句柄接受的参数Source-Control(代表吸附窗口)强制转换为TDockableForm类型(可吸附窗体);然后判断强制转换是否成功或者Source中是否包含可吸附对象;最后将判断结果保存到Accept变量中。第(2)句的作用是如果上述转换
您可能关注的文档
最近下载
- 绿巨人学习_坡地建筑设计.pdf VIP
- 基于自适应的改进人工蜂群算法.docx VIP
- 2025-2025南大核心CSSCI目录.docx VIP
- 2025年中国合成生物制造产业发展白皮书.pdf VIP
- 2025年完整版)体育单招语文试题附答案 完整版520.pdf VIP
- 【Jefferies-2025研报】幻灯片:肥胖症相关公司在ADA会议及下半年的布局:安进、诺和诺德等.pdf
- 海南省建设工程项目经理(注册建造师)信用评价标准2025.pdf VIP
- 为旅行社产品定价课件(共21张PPT)《旅行社计调业务》(中国言实出版社).pptx VIP
- 《基于DFT的第一性原理计算方法简介》-姜俊.pdf VIP
- 《中国人民海军》课件.ppt VIP
文档评论(0)