《ActiveX控件制作》PPT課件_第1頁
《ActiveX控件制作》PPT課件_第2頁
《ActiveX控件制作》PPT課件_第3頁
《ActiveX控件制作》PPT課件_第4頁
《ActiveX控件制作》PPT課件_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、ActiveX控件制作,在系統(tǒng)開發(fā)過程中,控件的使用可以有效的幫助程序的開發(fā),但是系統(tǒng)提供的控件不能滿足用戶的所以要求。于是我們可以開發(fā)滿足自己要求的Activx控件。 下面介紹一個(gè)簡(jiǎn)單ACtivx控件的制作,1,新建MFC Activx control wizard工程,名為MyClock,選擇創(chuàng)建空的工程。生成的控件有3個(gè)類和2個(gè)接口。 應(yīng)用程序類:CMyclockApp 主窗口類:CMyclockCtrl 對(duì)話框類,顯示控件屬性頁 CMyclockPropPage 接口是外部調(diào)用控件功能的函數(shù)集合, 一些純虛函數(shù),在主窗口類中進(jìn)行實(shí)現(xiàn),運(yùn)行時(shí)選擇下面的方式:控件是無法獨(dú)立運(yùn)行,必須使用容

2、器來測(cè)試控件。 查看其方法和屬性頁:方法只有aboutBox,屬性頁為空。 下面學(xué)習(xí)添加屬性和方法。,控件注冊(cè)與注銷,控件必須注冊(cè)才可以使用。在globals中有注冊(cè)函數(shù)DllRegisterServer和注銷函數(shù)DllUnregisterServer。 Vc+編譯控件時(shí),最后對(duì)ACtivx控件調(diào)用全局函數(shù)進(jìn)行注冊(cè)。 可以手動(dòng)注冊(cè):開始-運(yùn)行-regsvr32 E:Clock.ocx 或者vc+-tool-register control 控件注銷,使用regsvr32 程序, regsvr32 /u E:Clock.ocx 注銷,默認(rèn)生成的控件功能是在CMyclockCtrl :ondraw

3、中畫一個(gè)橢圓??梢孕薷臑橄旅鏁r(shí)間函數(shù) CTime time=CTime:GetCurrentTime(); if(0=time.GetSecond() FireNewMinute(); CString str=time.Format(%H:%M:%S); pdc-TextOut(0,0,str); 得到時(shí)間時(shí)靜止的,可以設(shè)置一個(gè)時(shí)鐘函數(shù),更新時(shí)間,添加常用屬性頁,MFC 提供了三個(gè)與 ActiveX 控件一起使用的常用屬性頁:CLSID_CColorPropPage、CLSID_CFontPropPage 和 CLSID_CPicturePropPage。 這些頁分別顯示常用顏色、字體和圖片屬

4、性的用戶界面。 添加:在MyclockCtl.cpp中找到 BEGIN_PROPPAGEIDS( CSampleCtrl, 4 ) PROPPAGEID( CMyPropPage:guid ) PROPPAGEID( CLSID_CFontPropPage ) PROPPAGEID( CLSID_CColorPropPage ) PROPPAGEID( CLSID_CPicturePropPage )END_PROPPAGEIDS(CSampleCtrl) 請(qǐng)注意,BEGIN_PROPPAGEIDS 宏中的屬性頁數(shù)為 4。它表示 ActiveX 控件支持的屬性頁數(shù)。,注意如果不能訪問控件常用屬

5、性頁,可能是因?yàn)闆]有在當(dāng)前的操作系統(tǒng)中正確地注冊(cè) MFC DLL (MFCxx.DLL)。導(dǎo)致這種情況的原因通常是安裝了 Visual C+和。Net多個(gè)MFC庫, 如果常用屬性頁不可見通過在命令行中用 DLL 的完整路徑名運(yùn)行 RegSvr32.exe 來注冊(cè) DLL。 。,添加自定義屬性頁,如果系統(tǒng)提供一個(gè)自定義屬性頁不夠用。則按以下步驟添加: 1.ActiveX工程中,資源視圖中“Dialog”節(jié)點(diǎn),添加Dialog并選擇 IDD_OLE_PROPPAGE_SMALL。并修改其名字。,2.在類向?qū)е校砑有骂?,注意其基類和dialogID(選擇你新建的對(duì)話框).,3程序中添加:程序中有個(gè)

6、屬性頁表 添加頭文件 #include classname.h 修改屬性表 BEGIN_PROPPAGEIDS(CClockCtrl, 4) PROPPAGEID(CClockPropPage:guid) PROPPAGEID(CLSID_CColorPropPage) PROPPAGEID(newPropPage:guid) PROPPAGEID(classname:guid) END_PROPPAGEIDS(CClockCtrl) 改變其總數(shù),并將新建的屬性頁其加入 4. 完善屬性頁,二設(shè)置自定義屬性頁的名字 在資源的string table中添加兩個(gè)string一個(gè)是新建屬性頁的標(biāo)題,一

7、個(gè)是新建屬性頁的名字。(在字符表中修改后,必須在程序中對(duì)應(yīng)位置修改),我們先定義個(gè)設(shè)置的值是IDS_Camera_IP_CAPTION(名字)。,在這個(gè)屬性頁類的構(gòu)造函數(shù) 由newPropPage:newPropPage() : COlePropertyPage(IDD,0) 改為:newPropPage:newPropPage() : COlePropertyPage(IDD, IDS_new_CAPTION) 結(jié)果出現(xiàn)錯(cuò)誤:,4.錯(cuò)誤是沒定義標(biāo)題,出現(xiàn)空指針。再定義一個(gè)標(biāo)題: IDS_VIDEO_Camerapara(options標(biāo)題) BOOL Ccameraparam:CcameraparamFactory:UpdateRegistry (BOOL bRegister) if (bRegister) return AfxOleRegisterPropertyPageClass(AfxGetInstanceHandle(), m_clsid, IDS_VIDEO_Camerapara); else return AfxOleUnregisterClass(m_clsid, NULL); ,三屬性頁控件變量關(guān)聯(lián)到屬性 1.在項(xiàng)目類中添加一個(gè)屬性propname(名字中不要有下劃線)。 錯(cuò)誤:Invalid

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論