• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Web應(yīng)用中的ActiveX控件的創(chuàng)建與使用

    2015-03-15 05:33:37邢素萍
    微型電腦應(yīng)用 2015年12期
    關(guān)鍵詞:屬性控件對話框

    邢素萍

    ?

    Web應(yīng)用中的ActiveX控件的創(chuàng)建與使用

    邢素萍

    摘要:介紹了微軟公司提出的廣泛應(yīng)用于桌面及Web應(yīng)用中的ActiveX工具集合的創(chuàng)建與使用。ActiveX控件是基于組件對象模型(COM)的可重用軟件組件,有了它在網(wǎng)頁和桌面應(yīng)用程序中加入特殊的功能會很方便。使用VS2010創(chuàng)建了一個ActiveX控件包含為控件添加屬性;改寫相關(guān)函數(shù);添加事件功能與添加事件激發(fā)功能等方法。使用ActiveX控件可豐富編程語言功能,拓寬Web程序的應(yīng)用領(lǐng)域。

    關(guān)鍵詞:控件、Web頁、屬性、對話框

    0 引言

    ActiveX是微軟公司提出的一套二進制組件發(fā)布方案、實現(xiàn)規(guī)范和工具集合的總稱。目的是實現(xiàn)軟件二進制級別的兼容和復(fù)用,解決了軟件技術(shù)發(fā)展的早期,各種不同語言及不同編譯器創(chuàng)建的軟件在二進制級別不能互訪的問題。ActiveX控件與自動化編程語言間存在非常密切的聯(lián)系,其主要的目標(biāo)之一就是豐富編程語言功能。ActiveX 控件是基于組件對象模型(COM)的可重用軟件組件,廣泛應(yīng)用于桌面及Web應(yīng)用中。

    1 創(chuàng)建ActiveX控件

    ActiveX控件可以由任何語言實現(xiàn),最后生成的組件要遵循ActiveX技術(shù)規(guī)范,比如可以使用Visual Basic、C++、C等語言,微軟公司的Visual Studio系列開發(fā)套件可以較好的支持ActiveX。新版的ATL(活動模板庫)為COM組件的開發(fā)帶來了簡便方法,我們下面使用Visual Studio 2010團隊開發(fā)版(下文簡稱VS2010)創(chuàng)建一個最簡單的ActiveX,實現(xiàn)消息輪播的功能。建立ActiveX項目最常用的方式是使用VS2010項目向?qū)蒀OM組件的框架。使用向?qū)Э梢源蟠蠛喕_發(fā)工作,新建一個ALT項目的操作步驟如下:

    第1步:在VS2010主界面窗口中,選擇菜單欄“新建”|“項目”命令,打開“新建項目”對話框,如圖1所示:

    圖1 新建項目

    第2步:在“已安裝的模板”列表框中單擊“其他語言”|“Visual C++”|“ATL”項目。選擇右側(cè)的“ATL項目”,在“名稱”編輯框中輸入項目名稱“MessageBoard”,在“位置”編輯框中輸入項目保存的路徑。單擊“確定”按鈕,打開“ATL項目向?qū)А睂υ捒颉?/p>

    第3步:單擊“應(yīng)用程序設(shè)置”標(biāo)簽,勾選“允許合并代理/存根(stub)代碼”復(fù)選框,如圖2所示:

    圖2 ALT項目向?qū)?/p>

    單擊“完成”按鈕完成項目的創(chuàng)建。

    2 添加ATL控件

    接下來為COM對象添加一個ATL控件,使用“ATL控件”向?qū)Э梢院苋菀椎靥砑有翧TL控件,操作步驟如下:

    第1步:選擇菜單欄“視圖”|“類視圖”命令,打開“類視圖”列表框。在其中右鍵選擇“MessageBoard”項目,選擇右鍵菜單“添加”|“類”命令,打開“添加類”對話框。第2步:選擇“類別”列表框中的“ATL”項目,選擇“模板”列表框中的“ATL控件”項目,如圖3所示:

    圖3 添加類對話框

    單擊“添加”按鈕,打開“ATL控件向?qū)А睂υ捒颉?/p>

    第3步:單擊“名稱”標(biāo)簽,在“簡稱”編輯框中輸入“MsgBoardCtl”(不包括引號)。

    第4步:單擊“選項”標(biāo)簽,勾選“連接點”復(fù)選框。單擊“外觀”標(biāo)簽,勾選“可插入”復(fù)選框,單擊“完成”按鈕完成控件的添加操作。

    3 為控件添加屬性

    到目前為止,已經(jīng)添加了一個ActiveX控件,此時先來編譯一次項目。選擇“生成”|“生成解決方案”命令,項目開始編譯并構(gòu)建。編譯完成后為MsgBoardCtl控件添加一個屬性,用于保存外部傳入的消息文本,操作步驟如下:

    第1步:右鍵單擊“類視圖”列表框中的“IMsgBoardCtl”項目,選擇右鍵菜單“添加”|“添加屬性”命令,打開如圖5所示的“添加屬性向?qū)А贝翱凇?/p>

    第2步:單擊“屬性類型”下拉列表框的下三角按鈕,選擇“BSTR”項目。在“屬性名”編輯框中輸入“msgText”,如圖4所示:

    圖4 添加屬性

    單擊“完成”按鈕完成操作。

    4 改寫相關(guān)函數(shù)

    開發(fā)環(huán)境默認(rèn)生成的代碼并不能完成本例所要完成的具體任務(wù),因此需要重寫相關(guān)函數(shù)或方法。這里實現(xiàn)的功能是在控件被重繪時將消息文本輸出在屏幕上,需要重寫OnDraw方法。操作步驟如下:

    第1步:在“類視圖”列表框中找到“OnDraw”方法并雙擊,如圖5所示:

    圖5 定位OnDraw方法

    此時代碼編輯器中的光標(biāo)定位到OnDraw方法的代碼中,將OnDraw方法中原有的代碼全刪除,然后添加OnDraw方法代碼。

    第2步:在文件“MsgBoardCtl.h”中找到構(gòu)造函數(shù)CMsgBoardCtl()并修改,實現(xiàn)對成員變量m_bstrMessag的初始化。

    第3步:選擇菜單欄“視圖”|“解決方案資源管理器”命令,在“解決方案資源管理器”列表框中雙擊打開“MsgBoardCtl.cpp”文件。找到“get_msgText”方法和“put_msgText”方法并修改。

    5 添加事件功能

    ActiveX控件可以處理消息,借此實現(xiàn)用戶交互。為控件MsgBoardCtl添加事件傳出功能,當(dāng)用戶在控件上單擊時,將單擊事件傳遞給控件容器。操作步驟如下:

    第1步:展開“類視圖”列表窗口中的類型庫“MessageBoardLib”。右鍵單擊“_IMsgBoard CtlEvents”接口,選擇右鍵菜單“添加”|“添加方法”命令,打開“添加方法向?qū)А睂υ捒颉?/p>

    第2步:在“添加方法向?qū)А睂υ捒虻摹胺祷仡愋汀绷斜砜蛑刑钊搿皏oid”。在“方法名稱”編輯框中填入“ClickIn”,勾上“參數(shù)屬性”下的“in”復(fù)選框,在“參數(shù)類型”下拉列表框中填入“LONG”,在“參數(shù)名”編輯框中填入“x”,單擊“添加”按鈕。重復(fù)添加參數(shù)操作,和第一遍不同的是在“參數(shù)名”編輯框中填入“y”。添加x、y兩個參數(shù)后單擊“完成”按鈕退出“添加方法向?qū)А睂υ捒?,如圖6所示:

    圖6 添加方法

    第3步:因為在此使用了老版本的導(dǎo)入庫,此時項目編譯鏈接會出兩個小問題,所以須將項目配置為使用多字節(jié)字符集而不是unicode字符集,并設(shè)置C++默認(rèn)內(nèi)置字符類型為多字節(jié)。右鍵單擊“類視圖”列表框中的項目名稱“MessageBoard”,選擇右鍵菜單“屬性”命令,打開“屬性頁”對話框。在左邊的列表框中選擇“配置屬性”|“常規(guī)”項目,選擇右邊列表框中的“項目默認(rèn)值”|“字符集”下拉列表框中的“使用多字節(jié)字符集”。

    第4步:選擇“屬性頁”左邊列表框中的“配置屬性”|“C/C++”|“語言”項目。單擊右邊列表框中的“將wchar_t視為內(nèi)置類型”下拉列表框的下三角按鈕,選擇“否(/Zc:wchar_t-)”,單擊“確定”按鈕關(guān)閉“屬性頁”對話框。

    第5步:編譯項目,重新生成類型庫。選擇“生成”|“生成解決方案”命令,系統(tǒng)開始編譯構(gòu)建項目。生成完畢后,在“類視圖”列表框右鍵單擊“CMsgBoardCtl”項目,選擇右鍵菜單“添加”|“添加連接點”命令。打開“實現(xiàn)連接點向?qū)А睂υ捒颉kp擊“源接口”列表框中的“_IMsgBoardEvents”項目,“_IMsgBoardEvents”將出現(xiàn)在“實現(xiàn)連接點”列表框中,單擊“完成”按鈕退出。

    6 添加事件激發(fā)功能

    為了能夠激發(fā)事件,必須讓控件響應(yīng)鼠標(biāo)相關(guān)消息,并在消息處理程序中將事件傳遞給控件容器。如此外部的容器代碼就能感知發(fā)生在控件中鼠標(biāo)單擊事件,添加事件激發(fā)功能的操作步驟如下:

    第1步:右鍵單擊“類視圖”列表框中的“CMsgBoardCtl”項目,選擇右鍵菜單“屬性”命令,打開“屬性”窗口。單擊“消息”按鈕,在消息列表框中找到“WM_LBUTTON

    -DOWN”項目,雙擊其右邊的空白表項,VS2010自動添加該消息處理程序并命名為“OnLButtonDown”,如圖7所示:

    圖7 添加消息處理程序

    第2步:打開“MsgBoardCtl.cpp”文件,修改“OnLButton -Down”方法。

    7 編譯生成控件

    到目前為止,添加代碼的工作已經(jīng)完成,將發(fā)布方式配置為Release。Release方式將去掉目標(biāo)代碼中的調(diào)試信息并做了一些優(yōu)化,發(fā)行版的產(chǎn)品通常采用這種方式,代碼體積變小并且運行速度快。構(gòu)造發(fā)行版的操作步驟如下:

    第1步:單擊工具欄上的“解決方案配置”列表框的下三角按鈕,選擇“Release”項目,如圖8所示:

    圖8 生成解決方案

    第2步:驟設(shè)置項目字符集屬性。第3步:選擇菜單欄“生成”|“生成解決方案”命令,VS2010開始編譯構(gòu)建MessageBoard控件。

    其中“F9C695B2-5569-4F28-88FD-D9EB4E41055E”為控件“MsgBoardCtl”的GUID(全球唯一標(biāo)識符,此串與讀者文件中的不相同)。記下該字符串,這是在Web頁中插入MsgBoardCtl控件時需要使用到該標(biāo)識符。到當(dāng)前工程目錄下的Realese文件夾中,找到名為MessageBoard.dll的文件,它就是最后產(chǎn)出的程序組件,如圖9所示:

    圖9 工程目錄

    將該文件復(fù)制到一個安全的文件夾中,以便在Web頁中使用ActiveX控件。

    8 使用ActiveX控件

    前面使用VS2010創(chuàng)建了一個ActiveX組件。該組件在機器上注冊以后即可在各種支持ActiveX組件的地方使用,其中也包括Web頁。嵌入在Web頁中的ActiveX控件可以和JavaScript交互。開始使用一個新的ActiveX控件之前必須先在機器上注冊如圖10所示:

    圖10 注冊組件

    注冊MessageBoard組件的操作步驟如下:

    第1步:單擊“開始”菜單,選擇“運行”命令,打開“運行”對話框。

    第2步:在“打開”編輯框中輸入regsvr32加空格加MessageBoard.dll文件的完整路徑名,筆者已經(jīng)將該文件復(fù)制到C盤的根目錄下。因此輸入的命令應(yīng)該為“regsvr32

    另一種使用ActiveX組件的方式是使用標(biāo)簽。本文將采用這種方式,將上前面創(chuàng)建的MessageBoard組件嵌入到HTML文檔中。

    9 總結(jié)

    ActiveX控件可以解決網(wǎng)頁程序無法操作客戶端硬件的問題,使用它可拓寬了Web程序的應(yīng)用領(lǐng)域。但ActiveX控件能否正常使用還要受瀏覽器設(shè)置的影響。如果在瀏覽器端禁用了ActiveX控件,相應(yīng)功能將無法實現(xiàn)。可以事先設(shè)置好瀏覽器屬性,對于其他的網(wǎng)站,可以提示用戶設(shè)置瀏覽器屬性以便允許ActiveX控件的啟用。

    參考文獻

    [1] 李躍峰,王文海.基于ActiveX技術(shù)的組態(tài)軟件Web服務(wù)功能的設(shè)計和實現(xiàn) [J].工業(yè)控制計算機,2007,07.

    [2] 樂丹,黃明和,羅文兵.ActiveX Scripting技術(shù)在組態(tài)軟件中的應(yīng)用[J]. 工業(yè)控制計算機,2008(1):44-45.

    [3] 周峰.Ajax開發(fā)技術(shù)原理與實踐教程[M].北京:電子工業(yè)出版社,2011,9.

    [4] [4] 夏幫貴.JavaWeb開發(fā)完全掌握[J].北京:中國鐵道出版社,2011,7.(收稿日期:2015.09.25)

    作者簡介:邢素萍(1957-),女,南京工業(yè)職業(yè)技術(shù)學(xué)院,教授,研究方向:計算機軟件設(shè)計與軟件開發(fā)應(yīng)用,南京,210000

    文章編號:1007-757X(2015)12-0074-03

    中圖分類號:TP311

    文獻標(biāo)志碼:A

    猜你喜歡
    屬性控件對話框
    正?;謴?fù)虛擬機
    Bootlace Worms’Secret etc.
    關(guān)于.net控件數(shù)組的探討
    軟件(2018年7期)2018-08-13 09:44:42
    對兩種實體觀的探析
    青春歲月(2016年22期)2016-12-23 13:59:29
    用好文件“屬性” 解決實際問題
    論集體建設(shè)用地使用權(quán)的用益物權(quán)屬性
    關(guān)于公允價值本質(zhì)與特性的探析
    中國市場(2016年35期)2016-10-19 03:23:05
    快速抓取對話框中的完整信息
    電腦迷(2012年22期)2012-04-29 20:30:54
    就這樣玩會VBA中常見的自定義控件
    電腦迷(2012年24期)2012-04-29 00:44:03
    在PowerBuUder中利用WinSock控件制作簡單的Web服務(wù)器
    邯郸市| 金坛市| 游戏| 昌平区| 黎川县| 肇东市| 静海县| 尚义县| 巴林左旗| 息烽县| 安溪县| 忻城县| 福泉市| 井陉县| 新余市| 澳门| 增城市| 博罗县| 金寨县| 奉新县| 德庆县| 迁安市| 长宁县| 渝中区| 肥东县| 景洪市| 寿光市| 多伦县| 崇左市| 榆树市| 安塞县| 竹北市| 鲁甸县| 油尖旺区| 比如县| 张家界市| 石阡县| 石狮市| 静安区| 手机| 瓮安县|