MFCActiveX控件輸入項目名稱,本例子我們起名為FActiveX,點擊確定。在控件設置中僅選中運行時不可見,然后選擇完成。到此一個完整的ActiveX框架就已經(jīng)搭成了,VC2005為我們生成了所有必須的文件,現(xiàn)在你就可以編譯一下了,應該沒有任何的錯誤和警告,否則就可能是你的開發(fā)環(huán)境有問題了。在工程目錄里的Debug子目錄下已經(jīng)生成了" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

用 VC++ 2005 建立ActiveX 分步走

系統(tǒng) 2706 0

如何使用VC++ 2005創(chuàng)建一個ActiveX控件呢,請聽我慢慢道來。
?

首先選擇新建項目,選擇 Visual C++? MFC -> MFC ActiveX 控件




輸入項目名稱,本例子我們起名為 FActiveX ,點擊確定。


?

在控件設置中 僅選中 運行時不可見 ,然后選擇完成。

到此一個完整的 ActiveX 框架就已經(jīng)搭成了, VC2005 為我們生成了所有必須的文件,現(xiàn)在你就可以編譯一下了,應該沒有任何的錯誤和警告,否則就可能是你的開發(fā)環(huán)境有問題了。

在工程目錄里的 Debug 子目錄下已經(jīng)生成了 FAvtiveX.ocx 的文件,說明我們已經(jīng)成功生成控件了,只不過這個控件沒有任何功能和接口。

? 下面我們就逐個添加控件的2個要素:事件、方法;



在類視圖中選中 CFActiveXCtrl類,點擊右鍵選擇 添加->添加事件

在添加事件向?qū)Ю铮顚懯录Q RecvData ,參數(shù)類型 BSTR, 參數(shù)名 strData,

添加 將參數(shù)名添加到參數(shù)列表。

點擊完成,事件就添加完了.

那方法該如何添加呢?

類視圖 ->接口->FAvtiveXlib->接口->_DFAvtiveX 上點擊右鍵選擇 添加->添加方法

在添加方法向?qū)е校祷仡愋瓦x擇void,方法名Show,參數(shù)類型BSTR,參數(shù)名strMsg,

選擇 完成 ,至此方法就添加完成了。

?

打開 FAvtiveXCtrl.cpp文件,在Show程序里添加如下測試代碼

    RecvData(strMsg);

void CFAvtiveXCtrl::Show(LPCTSTR strMsg)
{
    AFX_MANAGE_STATE(AfxGetStaticModuleState());

    // TODO: 在此添加調(diào)度處理程序代碼
    RecvData(strMsg);
}

  

??

現(xiàn)在我們來重新生成解決方案,應該沒有任何錯誤和警告產(chǎn)生。

至此我們的第一個控件大功告成,現(xiàn)在就讓我們來測試一下。 ?

首先新建一個 HTM 文件,內(nèi)容如下:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>ActiveX測試</title>
</head>
<object id="MYAvtiveX" classid="clsid:42BB26D9-323D-4E06-A2B3-D04CF3C4C074" > </object> 
<body>
<input type='button' onclick='MYAvtiveX.Show("Hello World!")' value='Click'> 
<script language='javascript' for='MYAvtiveX' event='RecvData(Message)'> 

    alert("響應ActiveX觸發(fā)的事件成功:"+Message); 
      
</script> 
</body>
</html>
  

??

?

其中的 classid="clsid:42BB26D9-323D-4E06-A2B3-D04CF3C4C074" 代表我們剛剛生成的控件 clsid 可從 FAvtiveX.idl 文件中查到:

?

    //  CFAvtiveXCtrl 的類信息

    [ uuid(42BB26D9-323D-4E06-A2B3-D04CF3C4C074),
      helpstring("FAvtiveX Control"), control ]
    coclass FAvtiveX
    {
        [default] dispinterface _DFAvtiveX;
        [default, source] dispinterface _DFAvtiveXEvents;
    };
  

?

保存HTM文件,用IE打開,IE會提示“ 已限制此網(wǎng)頁運行可以訪問計算機的腳本或ActiveX控件 ”,請單擊選擇允許阻止的內(nèi)容,在彈出的安全警告窗口選擇“ ”,然后你就可以點擊我們剛剛創(chuàng)建的按鈕,IE會問你想不想交互之類的話,你選擇“ ”即可看到如下窗口彈出:



說明我們的控件運行正常。

?

用 VC++ 2005 建立ActiveX 分步走


更多文章、技術(shù)交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 宽甸| 饶阳县| 富锦市| 靖西县| 雷波县| 雅安市| 汉寿县| 镇巴县| 神木县| 车险| 云安县| 榆中县| 天门市| 临江市| 太白县| 射洪县| 沛县| 农安县| 美姑县| 连南| 公主岭市| 铜梁县| 建水县| 三门县| 惠水县| 玉龙| 东宁县| 启东市| 海林市| 松溪县| 桐梓县| 隆安县| 万载县| 沂南县| 土默特左旗| 巴楚县| 德钦县| 镇平县| 东平县| 黄龙县| 犍为县|