版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、在許多程序中,窗口可以被拖放到另一個窗口中,并溶合為一體,例如cbuilder中的ClassExpler與其它窗口就是典型一例,在cbuilder中,這種特性被稱為“窗口吸附“。在bcb中的許多組件都具有與“吸附“功能相關(guān)的屬性,例如:DockSite屬性、UseDockManage屬性,以及DragKing屬性,它的屬性可以設(shè)置為dkDock。如果將這些屬性值簡單設(shè)置一下,窗口將自動具有吸附功能,不過這樣的吸附功能非常死板,沒有實用價
2、值。下面筆者就給大家介紹一下如何在cbuilder中實現(xiàn)真正的窗口吸附效果。一、設(shè)計一個主窗口新建一工程,主窗體命名為MainFm,單元文件命名為Main。添加一個TMainMenu命名為MainMenu1,雙擊該主菜單添加兩個子菜單分別為“紅色窗口“和“藍(lán)色窗口“,這兩個子菜單分別用來顯示不同顏色的窗口。接著在窗口的最右端添加一個寬度為0,高度為整個窗口高的Panel組件并命名為DockPanel,建立Panel組件是因為被“吸附“的
3、窗口必須要有一個“吸附區(qū)“,這種吸附區(qū)可以是窗口,也可以是窗口化組件,如Panel。再在Panel右邊添加一個Splliter組件,命名為VSplliter寬度設(shè)為4,高度為窗體的高度。建立Splliter組件是為了有效地建立被吸附窗口的間隔區(qū),并且可以方便用戶調(diào)整被吸附窗口所占據(jù)的寬度。(如圖1所示)二、設(shè)計“被吸附“窗口作為主窗口的設(shè)計窗體,除了一般的屬性設(shè)置外,有關(guān)Dock的屬性均無需修改,只要將“被吸附“窗體的屬性進(jìn)行修改就可以
4、了。選擇“File|NewFm“命令,建立一個新窗體,將新窗體命令為DockWindow和吸附功能相關(guān)的屬性修改如下:屬性值DockSiteTrueDockKinddkDockDockModedmAutomatic在窗體中放置一個Memo組件,并將其Align屬性修改為alClient,使其充滿整個窗口區(qū)域。放置Memo組件的目的是使窗口在被吸附時有明顯的邊界特征,并且可以賦予窗口不同顏色。三、設(shè)計實現(xiàn)“吸附“功能實際上,產(chǎn)生吸附作用的
5、并不是主窗體,而是主窗體中的Panel組件,所以Panel組件中與吸附功能有關(guān)的組件也必須和吸附窗口一樣進(jìn)行修改,修改值如上表所示。接著為Panel添加如下事件:OnDockOver、OnGetSiteinfo、OnDock、OnUndock代碼與解釋如下:void__fastcallTMainWin::DockPanelDockOver(TObjectSenderTDragDockObjectSourceintXintYTDragSt
6、ateStatebool(1)if(Accept)(2)throwEInvalidCast(““)if(SenderPanelDockClientCount==1)判斷是否包含被吸附窗口,如果存在,那么調(diào)用ShowPanel重新顯示Panel組件ShowPanel(SenderPaneltrueNULL)SenderPanelDockManagerResetBounds(true)重新畫被吸附窗口解釋:OnDock事件是在被吸附窗口吸附
7、到面板上之后產(chǎn)生的事件,吸附之后,程序應(yīng)該調(diào)用后面定義的ShowPanel函數(shù),使Panel組件按照新的大小顯示出來(包含被吸附窗口),然后利用它的DockManager重畫被吸附的窗口。void__fastcallTMainWin::DockPanelUnDock(TObjectSenderTControlClientTWinControlNewTargetboolif(SenderPanel==NULL)throwEInvalidC
8、ast(““)if(SenderPanelDockClientCount==1)確保當(dāng)前吸附面板中包含了被吸附對象,然后調(diào)用ShowPanel方法“解放“它ShowPanel(SenderPanelfalseNULL)OnUndock事件是在吸附對象被“解放“之前被調(diào)用的,所以這里可以為用戶提供一個不“解放“吸附對象的機會。接下來自定義一個函數(shù)ShowPanel()用來控制吸附對象其中:各參數(shù)說明:APanel吸附面板對象,MakeVi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公交專用道??空就?课煌ㄐ心芰Ψ治?pdf
- 多線路公交??空静次婚g距與??拷M織研究.pdf
- 無人??康拇迩f.pdf
- 教你買火車票買到靠窗戶的座位
- matlab的命令窗口、圖形窗口
- delphi高級???dock)技術(shù)的實現(xiàn)
- 窗口抖動
- 滑動窗口
- 快速公交停靠站點優(yōu)化研究.pdf
- 電梯運動零速停靠控制算法.pdf
- js打開新窗口(模式或非模式窗口)
- 窗口藥學(xué)服務(wù)
- 公交停靠站線路容量優(yōu)化研究.pdf
- 常規(guī)公交站點停靠時間研究.pdf
- 常規(guī)公交??空緝?yōu)化設(shè)置研究.pdf
- 滑動窗口協(xié)議
- 指揮窗口93854
- 服務(wù)窗口方案
- 認(rèn)識windows窗口
- 城市公交??空就ㄐ心芰ρ芯?pdf
評論
0/150
提交評論