VS2013編寫嵌入網頁的ATL控制元件1-新建和配置
阿新 • • 發佈:2019-01-01
前言、廢話和原始碼下載位置
最近做一個專案需要網頁開啟的ATL控制元件作為依託,顯示三維內容。網頁對控制元件可以呼叫函式,並且傳送資訊。控制元件也可以給網頁傳送訊息。
我不懂ATL控制元件,完全初學,弄了很久。寫個blog記錄一下。
原始碼工程下載:
AtlTest1501_V1 打包連結
一、工作環境
- Windows7 64位 旗艦版
- VS2013
- IE 10(有的IE11不可用還需要修改)
二、建立ATL控制元件
- “以管理員身份執行”VS2013。由於ATL控制元件需要註冊,VS嚮導生成的專案在編譯後,自動註冊,所以需要用管理員身份,否則編譯會失敗,提示註冊問題。
- 通過VS嚮導新建ATL專案。專案名稱定為AtlTest1501.選項如下圖:
點選完成。 - 在專案中新增ATL控制元件。
右鍵新增類,選擇ATL控制元件。填寫類名稱為“AtlControl”。
選擇支援“連線點”。
支援“IObjectSafety”介面。
新增控制元件基於: “Stactic”。
支援 “Auto Size”。
點選完成,新增好了ATL控制元件。 - 配置除錯,執行看看。
專案屬性對話方塊“除錯”中:
- “命令”輸入:C:\Program Files\Internet Explorer\iexplore.exe
- “命令引數”輸入:$(ProjectDir)AtlControl.htm
- “工作目錄”輸入::
(SolutionDir) (Configuration)
點選確定,編譯執行。
在IE網頁中,“允許阻止的內容”,看到一個灰白色的ATL控制元件。
- 跟蹤除錯。
- 在CAtlControl類的OnCreate函式中打斷點。
- 除錯的時候,在除錯選單中,選擇“附加到程序”,重新整理IE網頁,點選“允許阻止的內容”。就可以跟蹤除錯了。
- 注意:我是64位的機器,由於ATL只有32位的。需要確認登錄檔資訊是否相容32位的IE。展開至 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main,在右側列表中找到 TabProcGrowth 設定為非 0,如果這個數值型態是 DWORD,那可以設定為 1,如果型態是字串,可以設定為 medium。如果沒有這個項,就新建一個。百度一下有很多說這個的。原來在IE7的時候,還可以不用附加到程序直接就可以除錯執行,在IE10中沒有找到。剛剛查了一個
試一下,可以在網頁中控制元件灰白色的ATL控制元件,且斷點可以打斷。本文內容就完成了。
下一篇寫,網頁呼叫ATL控制元件,ATL控制元件向網頁返回事件。
參考文章
最近查詢過的文章很多。都不太記得了。這裡記錄了一些當時認為有用的。
ATL建立ActiveX控制元件樣例(入門級)
- 配置專案屬性:用於在IE中除錯ATL控制元件
- 給控制元件建立視窗,在OnDraw()函式中顯示,在OnCreate()及OnSize()函式中建立和顯示的程式碼。
- 連結如下:
http://blog.csdn.net/shangzhi6321/article/details/5091459
其他:給控制元件加上安全描述 可以去掉IE每次“允許顯示內容”的對話方塊詢問。
http://mochou123456.blog.163.com/blog/static/46057646201152111542393/
DLL+ ActiveX控制元件+WEB頁面呼叫例子
- 這個解決了我那個的函式呼叫的毛病。需要新增一些東西。
- 連結如下
http://blog.chinaunix.net/uid-10021887-id-2971827.html
把程式嵌入網頁之ATL編寫ActiveX[標準視窗+接受引數]
- 用於VS2013;
- 講解清晰入門用,我這個試用,都懷疑是物超的部落格,看了半天不是。
- 很清晰有時間看看,實現一下。
- 第一行是我傳輸函式不能的關鍵。
- 連結如下:
http://blog.csdn.net/sidyhe/article/details/12048553