版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系我們

[科普中國(guó)]-二進(jìn)制組件

科學(xué)百科
原創(chuàng)
科學(xué)百科為用戶提供權(quán)威科普內(nèi)容,打造知識(shí)科普陣地
收藏

二進(jìn)制組件,是在計(jì)算電子或機(jī)械設(shè)備中組裝在一起形成一個(gè)功能單元的一組元件所廣泛采用的一種數(shù)字。

利用·Net開發(fā)IE二進(jìn)制行為組件概述了IE二進(jìn)制行為組件的工作原理,根據(jù)其COM接口原始語義,針對(duì)·Net平臺(tái)的特點(diǎn)進(jìn)行了重新定義,在此基礎(chǔ)上闡述了利用·Net開發(fā)IE二進(jìn)制行為組件的一般方法,并介紹了在Html頁面文件中使用IE二進(jìn)制行為組件的方法。1

使用·Net開發(fā)IE二進(jìn)制行為組件的方法二進(jìn)制行為組件是COM技術(shù)實(shí)現(xiàn)的,若采用C++或ATL技術(shù)來開發(fā),需要處理很多COM技術(shù)細(xì)節(jié)問題,難度相對(duì)較大。但是·Net的出現(xiàn),使二進(jìn)制行為組件的開發(fā)變得簡(jiǎn)單。 由于·Net平臺(tái)上的COMinterop機(jī)制可透 明地處理COM對(duì)象和·Net對(duì)象之間的交互,使得在·Net上開發(fā)IE二進(jìn)制行為組件更加容易,因?yàn)镃OMinterop機(jī)制減輕了開發(fā)者處理COM技術(shù)細(xì)節(jié)的負(fù)擔(dān),特別是事件的處理變得非常地直觀,這個(gè)優(yōu)勢(shì)使得在·Net上開發(fā)IE二進(jìn)制行為組件更加簡(jiǎn)單和快速。

IE在有事件發(fā)生時(shí)會(huì)調(diào)用二進(jìn)制行為組件的Notify( )方法,同時(shí)傳遞一個(gè)事件ID,表明發(fā)生了什么事件,Documentready事件是在Html文檔已經(jīng)加載完畢時(shí)發(fā)生的,這個(gè)時(shí)候很多對(duì)象比如document、 element等已經(jīng)創(chuàng)建完畢,組件可以緩存這些對(duì)象以備今后使用,同時(shí)也可以做一些初始化的工作,但是最主要的工作是完成事件處理函數(shù)的綁定工作,一個(gè)定制的Html元素對(duì)象如果需要在IE中對(duì)鼠標(biāo)事件或其它的事件作出響應(yīng),那么就必須在這里為需要響應(yīng)的事件指定事件處理函數(shù)。 在這個(gè)例子中只為propertychange事件指定了事件處理函數(shù)。 由于。Net的COM-callable wrapper(CCW)自動(dòng)實(shí)現(xiàn)了IDispatch和IEventSink接口,事件處理函數(shù)的指定變得非常簡(jiǎn)單,這對(duì)于提高開發(fā)效率是很有幫助的。

mshtml2·IHtmlPainter·Draw( )方法是這個(gè)二進(jìn)制行為組件中另一個(gè)比較重要的方法,這個(gè)方法由IE來調(diào)用,主要作用是在IE傳遞進(jìn)來的設(shè)備上繪制位圖對(duì)象bitmap,可以采用所有的API來完成和繪圖有關(guān)的工作,因而可以實(shí)現(xiàn)較好的圖像效果。 由于位圖對(duì)象中只有一個(gè)線段,等效于在IE中畫了一個(gè)線段。每當(dāng)Line行為組件更新了位圖對(duì)象成員bitmap后,就可調(diào)用InvalidateRegion( )方法通知IE調(diào)用mshtml2·IHtmlPainter·Draw( )方法來重新繪制線段,這個(gè)方法實(shí)際上完成的是Html元素標(biāo)記的呈現(xiàn)工作。1

二進(jìn)制行為組件在Html頁面中的使用可以利用Line行為組件來實(shí)現(xiàn)一個(gè)‘’銷售業(yè)績(jī)表‘’的Html頁面,這里的銷售業(yè)績(jī)用柱形圖來表示,每個(gè)季度用一根粗線段表示銷售業(yè)績(jī),不同季度的線段顏色不同。當(dāng)鼠標(biāo)移到某個(gè)年份上時(shí),表示年份的字會(huì)變成紅色,同時(shí)柱形圖顯示當(dāng)年的銷售業(yè)績(jī)。

要在Html頁面中使用二進(jìn)制行為組件,首先要用元素實(shí)例化相關(guān)類工廠組件,這個(gè)類工廠組件是由它的IID來指定的,然后用