本文說明可用來優化 ActiveX 控制項以提升效能的技術。
這很重要
ActiveX 是不應該用於新開發的舊版技術。 如需取代 ActiveX 的新式技術詳細資訊,請參閱 ActiveX 控件。
主題 關閉「當可見時啟動」選項和在非使用中提供滑鼠互動討論在啟用前不會建立視窗的控件。 提供無視窗啟用主題探討那些即使被啟用,仍然不會建立視窗的控制項。
Windows 有兩個主要的 OLE 物件缺點:它們會防止物件在使用中時成為透明或不連續,而且會在具現化和顯示控件時增加大量的額外負荷。 一般而言,建立視窗需要控件建立時間的 60%。 使用單一共享視窗(通常是容器的)和某些分派程序代碼,控件通常會接收相同的窗口服務,通常不會遺失效能。 擁有窗口對物件而言,大部分是不必要的額外負荷。
使用您的控制元件於某些容器時,某些優化不一定會改善效能。 例如,在 1996 年之前發行的容器不支援無窗口啟用,因此實作這項功能不會在舊版容器中提供好處。 不過,幾乎每個容器都支持持續性,因此優化控件的持續性程序代碼可能會改善其在任何容器中的效能。 如果您的控件特別要與一種特定類型的容器搭配使用,您可能會想要研究該容器支援哪些優化。 不過,一般而言,您應該嘗試實作適用於您特定控件的其中許多技術,以確保控件在各種容器中也能執行。
您可以在 [控件設定] 頁面上,透過 MFC ActiveX 控件精靈實作其中許多優化。
MFC ActiveX 控件精靈 OLE 優化選項
| MFC ActiveX 控件精靈中的控制項設定 | 行動 | 詳細資訊 |
|---|---|---|
| 顯示時啟動 複選框 | 晴 | 關閉 [顯示時啟動] 選項 |
| 無窗口啟動 複選框 | 選擇 | 提供無窗口啟用 |
| 未裁剪的裝置內容 複選框 | 選擇 | 使用無裁剪的裝置上下文 |
| 無閃爍啟用 複選框 | 選擇 | 提供 Flicker-Free 啟動 |
| 鼠標指標非活動時的通知複選框 | 選擇 | 在非活動狀態下提供滑鼠互動 |
| 優化繪圖程式代碼 複選框 | 選擇 | 優化控件繪圖 |
如需實作這些優化之成員函式的詳細資訊,請參閱 COleControl。
如需詳細資訊,請參閱: