日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ActiveX控件使用总结

發布時間:2023/12/14 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ActiveX控件使用总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

開發環境:vs2015
上網找了很多關于這方面的資料進行學習。
終于給我找到幾個比較好的文章。
因為知識比較老。一般是接觸硬件和底層的人才會去學習。

參考文章:這是兩個比較好的文章
ActiveX控件的基本操作方法以及如何在VS2010下使用控件
https://blog.csdn.net/u014028070/article/details/38424611
c++ ActiveX基礎1:這個講了如何提供外部接口調用
https://blog.csdn.net/qq445803843/article/details/45845585

下面演示生成控件,html調用控件的例子

一、創建控件

1.先創建ActiveX項目

到這里不急著敲代碼
先了解一下控件項目的架構。
參考:一個別人分享的資源文檔。我會在文章最下面分享鏈接。
找到類視圖,分析對應結構。

其中的 CActiveXApp 是我們這個控件的主程序模塊,定義了控件的注冊
(DllRegisterServer)、刪除(DllUnregisterServer)等功能,一般不用動,如有需要我們可以
在其中的 InitInstance 和 ExitInstance 中定義我們自己的初始化和終止操作代碼,一般也就是
一些資源的初始化和銷毀工作。
Caxtivexdemo1Ctrl 是控件類,我們要做的控件功能基本上就是要在這個類中實現。
需要提一下的是在這個類中重寫了父類的 OnDraw 函數,有如下兩句代碼:
pdc->FillRect(rcBounds,
CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
pdc->Ellipse(rcBounds);
也就是在控件上畫了一個橢圓,實際控件開發中可以根據功能需要修改重寫這個函數來
繪制控件界面。
CActiveXPropPage 是屬性頁類,這個類實現了一個在開發時設定控件屬性的對話
框。
CActiveXLib 是為客戶程序提供本控件的屬性、方法以及可能響應的事件的接口的
庫節點,在添加控件的這些功能的時候會用得到。

2.創建對外的接口

定義調度映射和事件映射方法,提供給外部調用者使用

右鍵-添加-添加方法-確定
生成一個對外的接口函數
例子:Start()


會在3個地方添加代碼。
1.idl文件

2.ctrl控制類的定義和實現

到這里控件就OK了。
生成項目即可。會生成一個ocx文件。
這里建議大家把注冊輸出改為否。
后面自己手動注冊即可。下面有描述。

事件–映射返回數據

右鍵添加–事件


正常函數調用

屬性返參:


右鍵–添加–屬性

頁面調用:

<!DOCTYPE html> <html> <head><meta charset="utf-8"><title>testAll</title><style>*.button {height: 50px;padding-left: 20px;padding-right: 20px;}</style> </head> <body><div style="position: fixed;top: 20px"><label for="">結果</label><input type="text" id="result" style="width: 600px;"></div><div style="position: fixed; top: 50px"><div><object classid="clsid:C468DFBB-2F32-4CA6-8461-1791A29A4B00" id="ocx" width="0px" height="0px"></object></div><h3>非阻塞接口</h3><div><input class="button" type="button" value="test" onclick="onTest()"></div></div><!-- 事件處理 --><script>function onTest() {var resp_str =ocx.start(); result.value = ocx.pOutInfo;}</script> </body></html>

二、使用控件–使用html方式調用控件

1.注冊控件。
注冊方式。我是用bat方式的。比較方便。
%~dp0的意思是當前路徑。
注冊bat:
cd /d %~dp0
regsvr32 ActiveX.ocx
反注冊bat:
cd /d %~dp0
regsvr32 -u ActiveX.ocx
右鍵管理員模式運行即可成功注冊。

2.html調用ocx
html學習網址:
https://www.w3school.com.cn/html/index.asp
代碼:

<html> <head> <title> TestOCX </title> </head> <body> <object ID= "L" CLASSID= "CLSID:54B420A3-05D9-462D-9AFF-178E63670DB9" width=300 height=200> </object> <script language="javascript" type="text/javascript">function myTest(){L.Start();}</script><input id="Button1" type="button" value="test" onclick="myTest();" /> </body> </html>

解釋:

需要使用IE瀏覽器打開。

成功!!!

添加捕捉ActiveX控件的事件數據

1.右鍵類視圖里的控制類–添加事件

添加后會在2個地方添加代碼:


然后生成控件后使用html

html添加代碼:

<!-- 事件處理 函數名就是你定義的事件名 --><script type="text/javascript" for="L" event="OnDo(data)">L.value = data;alert(data);</script>


成功捕捉事件數據!!!

三、使用控件–使用MFC方式調用控件

1.到Dialog右鍵插入已經注冊好的控件

2.右鍵控件處添加變量

添加變量后即可調用你的控件內的接口!!!

如果要去掉提示彈窗:
參考下面文章:
去掉彈窗
1.遇到窗口下彈窗
https://zhidao.baidu.com/question/252382360.html
2.提示彈窗
https://zhidao.baidu.com/question/304928075497826844.html

基于MFC的ActiveX控件開發.pdf
鏈接:https://pan.baidu.com/s/17kilQgwdRtAt3PHrJgDrCg
提取碼:bhnr

修改時間:2021-06-07

總結

以上是生活随笔為你收集整理的ActiveX控件使用总结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。