ATL寫ActiveX的注意事項

2021-05-10 20:30:51 字數 531 閱讀 2725

一下都是經驗之談,僅供參考:

1. oncreate函式執行不到:在建構函式中新增 m_bwindowonly = true; 這個是有視窗的activex必須有的、

2. 新增屬性無法執行:看看有沒有實現永久化。實現永久化的主題網路上有很多。google吧。

3. 用html寫測試容器,如果用了這樣的寫法給控制項的屬性賦值的話。有乙個奇怪的問題。在本地執行html的時候控制項可以正確載入,而一旦你把html放到遠端,去訪問的時候就有問題了。控制項載入失敗。我研究了一下,控制項只能執行完建構函式,而像oncreate等函式都得不到執行。如果你遇到了這個問題,那麼看看你的控制項是否從iobjectsafetyimpl繼承過來了。在vc2005中預設的是這樣繼承的:

#ifdef _win32_wce // 要在 windows ce 上正確載入該控制項,要求 iobjectsafety

public iobjectsafetyimpl,

#endif

看到沒,竟然在windows ce上才這樣繼承。省事的方法,把#ifdef _win32_wce去掉

使atl開發的activex控制項不彈指令碼安全提示

1.在標頭檔案加入 com inte ce entry iobjectsafety public iobjectsafetyimpl stdmethod getinte cesafetyoptions refiid riid,dword pdwsupportedoptions,dword pdwen...

CWnd SetWindowPos的注意事項

函式原型 bool cwnd setwindowpos const cwnd pwndinsertafter,插入的地方 int x,水平座標 int y,垂直座標 int cx,寬 int cy,高 uint nflags 視窗定位標識 說明 這個函式能改變視窗的大小 位置和設定子視窗 彈出視窗或...

ATL中值得注意的C 技術

1.多重繼承中的名字衝突問題。class father class mother class baby public father,public mother virtual int mother faint 錯誤,無法區別father faint和mother faint。既然father和bab...