期貨量化軟件:赫茲量化中復(fù)合圖形對(duì)象控件
概述
在本文中,我將繼續(xù)開發(fā)復(fù)合圖形對(duì)象。 這些是標(biāo)準(zhǔn)的圖形對(duì)象,由多個(gè)圖形對(duì)象組成,并組合成單一的圖形對(duì)象。 在函數(shù)庫(kù)中,復(fù)合圖形中包含的圖形對(duì)象被定義為擴(kuò)展標(biāo)準(zhǔn)圖形對(duì)象。 此類對(duì)象擁有一些附加屬性和功能,令它們能夠合并為其它圖形對(duì)象。 復(fù)合圖形對(duì)象的概念要求在父對(duì)象變更或重新定位時(shí),將對(duì)象保持在其所附對(duì)象上,并調(diào)整其相對(duì)位置。 在上一篇文章中,我開始創(chuàng)建復(fù)合圖形對(duì)象事件的處理程序,它實(shí)現(xiàn)了復(fù)合圖形對(duì)象的移除處理,并啟動(dòng)開發(fā)其重新定位處理程序。
今天,我從復(fù)合圖形對(duì)象重新定位的內(nèi)容稍微離題 ,并實(shí)現(xiàn)圖表上復(fù)合圖形對(duì)象的變更事件處理。 此外,我將重點(diǎn)講解管理復(fù)合圖形對(duì)象的控件。 為什么呢? 我將實(shí)現(xiàn)復(fù)合圖形對(duì)象的實(shí)時(shí)創(chuàng)建 — 通過把從屬對(duì)象拖拽到基準(zhǔn)對(duì)象上,實(shí)現(xiàn)把從屬對(duì)象附加到基準(zhǔn)對(duì)象。 如果用鼠標(biāo)拖動(dòng)另一個(gè)對(duì)象,則基準(zhǔn)圖形對(duì)象將跟蹤該對(duì)象。 在距離某個(gè)圖表定位點(diǎn)一定距離處啟用對(duì)象附著機(jī)制。 連接附著對(duì)象定位點(diǎn)與基準(zhǔn)對(duì)象定位點(diǎn)的連線會(huì)被直觀地顯示,表明拖動(dòng)的對(duì)象已準(zhǔn)備好附著到基準(zhǔn)對(duì)象。 為達(dá)成這一點(diǎn),圖形對(duì)象的每個(gè)定位點(diǎn)都應(yīng)該擁有一個(gè)大小確定的窗體對(duì)象。 進(jìn)入窗體對(duì)象區(qū)域?qū)⒓せ罡街鴻C(jī)制,而指示對(duì)象已準(zhǔn)備好進(jìn)行交互的線條則會(huì)顯示在窗體本身上。 這樣的窗體在圖形對(duì)象的每個(gè)軸點(diǎn)上都是不可見的。 只能在調(diào)試時(shí),通過啟用沿窗體邊緣繪制矩形,來查看區(qū)域大?。?/p>

編輯
此外,窗體顯示圖形對(duì)象定位點(diǎn),這些定位點(diǎn)僅在鼠標(biāo)光標(biāo)懸停在窗體活動(dòng)區(qū)域上時(shí)才會(huì)出現(xiàn)。 因此,我們就能夠通過把鼠標(biāo)光標(biāo)懸停在窗體區(qū)域上,而不必鼠標(biāo)單擊高亮顯示來移動(dòng)和修改擴(kuò)展圖形對(duì)象。 一旦我們將光標(biāo)懸停在窗體的活動(dòng)區(qū)域(上面的圖像上用矩形標(biāo)記)上時(shí),標(biāo)簽就會(huì)出現(xiàn)在圖形對(duì)象定位點(diǎn)(圓圈中心的藍(lán)點(diǎn))中。 如果我們開始用鼠標(biāo)拖動(dòng)窗體,圖形對(duì)象的相應(yīng)軸點(diǎn)將跟隨光標(biāo),其所附復(fù)合圖形對(duì)象會(huì)一起修改。 如果按住鼠標(biāo)按鈕并把光標(biāo)拖入窗體活動(dòng)區(qū)域,這意味著(如果驗(yàn)證)我們將另一個(gè)圖形對(duì)象附著于窗體,從而激活把一個(gè)對(duì)象綁定到另一個(gè)對(duì)象的機(jī)制。 因此,這些窗體允許我們一次性完成幾個(gè)目標(biāo)。
我不打算在這里實(shí)現(xiàn)將一個(gè)對(duì)象連接到另一個(gè)對(duì)象,因?yàn)闇?zhǔn)備工作還沒有完成。 取而代之,我將創(chuàng)建窗體,將它們附加到圖形對(duì)象定位點(diǎn),并在更改圖表時(shí)實(shí)現(xiàn)沿對(duì)象軸點(diǎn)坐標(biāo)移動(dòng)它們的機(jī)制 — 重新定位圖表、或更改其顯示比例。 如此做,是因?yàn)榇绑w對(duì)象的坐標(biāo)以屏幕像素為單位,而大多數(shù)圖形對(duì)象以時(shí)間/價(jià)格值顯示。