VC6開發視訊監控ActiveX控制元件總結

長征2號發表於2017-09-06

   總結前段時間在VC6下使用MFC開發視訊監控控制元件過程中遇到的一些問題.

1.獲取控制元件當前所在路徑,用於讀取該目錄下的INI配置檔案

ContractedBlock.gif獲取配置檔案路徑

 

2.獲取當前執行控制元件的電腦上的固定碟符列表,用於本地錄影檔案存放

ContractedBlock.gif獲取固定碟符列表的函式

 

3.視訊1,4,9,16路畫面切換顯示

   較簡單地實現,在窗體上拖16個STATIC控制元件(定義陣列為panels),動態調整它們的位置大小即可,然後定義一個類如CPlayStatic去繼承CStatic,每一個STATIC控制元件就由CPlayStatic管理;因為我們要在Static控制元件上新增滑鼠,鍵盤事件處理,滑鼠單擊事件,選中該一播放皮膚時繪製綠色邊框,可以很明顯地看出當前是選中那一路視訊播放窗體,同時恢復上一路選中邊框為預設灰色邊框;滑鼠雙擊事件,實現視訊瀏覽視窗的全屏功能(按多路預覽–>單屏預覽–>全屏–>單路瀏覽–>多路預覽);右擊選單,對當前畫面進行操作,如本地錄影,語音對講,抓圖等操作;鍵盤事件處理,如該窗體當前正在預覽按F2/F鍵進入全屏模式,按Esc退出全屏,恢復普通模式(需讓該窗體獲得焦點,處理KeyDown事件)

ContractedBlock.gif1,4,9,16路畫面切換

 

4.畫面全屏顯示 需注意播放視窗全屏後,就不能夠通過GetDlgItem(int ctrlid)獲取到該STATIC控制元件控制程式碼了

ContractedBlock.gif全屏

 

5.如果ActiveX控制元件要使用其它第三方的ActiveX,需在InitInstance()方法中新增AfxEnableControlContainer(); 否則會造成第三方控制元件無法顯示,控制元件建立出錯

6.ActiveX在網頁中使用

  需使用object標籤,其classid具體值可在odl檔案中找到,一般在檔案最後,不要弄錯,否則將會造成控制元件無法成功建立; odl檔案中包含了控制元件的所有屬性,方法以及事件;使用如下

<object id=”ocx1″ height=”520″ width=”640″ 
      classid=”clsid:D55EFD59-8482-4486-9FDE-669EFAC4221B”>
     </object>

若JavaScript想呼叫控制元件的方法,可以這樣ocx1.RealPlay();呼叫控制元件的RealPlay方法

 

7.相關參考文章

使用MFC開發ActiveX控制元件全過程

ActiveX的設計

在ActiveX控制元件中引入窗體技術

如何將MFC ActiveX控制元件標記為安全

將ActiveX控制元件標記為指令碼安全和初始化安全

ActiveX控制元件數字簽名的實現

ActiveX安全:改進和最佳實踐[MSDN]

JavaScript 響應 ActiveX 事件

ActiveX元件與JavaScript互動 

javascript指令碼中定義的引數陣列,如何在VC++中訪問

IExpress壓縮CAB檔案及製作安裝程式所開發的小工具

Web釋出cab檔案打包的ActiveX控制元件總結

製作cab包,參考inf檔案

本文轉自peterzb部落格園部落格,原文連結:http://www.cnblogs.com/peterzb/archive/2009/05/28/1491198.html,如需轉載請自行聯絡原作者。


相關文章