控制 WebBrowser 控制元件的外觀和行為
在 CSDN 上經常看到以下兩個問題:
1、在 MFC 應用程式中,如果建立了一個 WebBrowser 控制元件(包括 CHtmlView 在內),如何可以把該控制元件的三維邊框禁止掉?
2、在 MFC 應用程式中,如果建立了一個 WebBrowser 控制元件(包括 CHtmlView 在內),如何可以把該控制元件的滾動條禁止掉?
其實,這兩個問題的解決辦法是一樣的。待老漢從頭道來。
從 Internet Explorer 4.0 開始,WebBrowser 控制元件的容器可以通過 IDocHostUIHandler 介面對 WebBrowser 控制元件的外觀和某些行為進行定製。上述的兩個問題,均可以通過實現該介面來達到我們的目的。但是,由於程式設計師自己實現 WebBrowser 控制元件的容器是一件很痛苦的事情,而且 MFC 中的 CHtmlView 和在 IDE 中插入 WebBrowser 控制元件後生成的包裝類已經具有比較完整的功能封裝,故罕有人願意從頭再開發自己的容器。不過令人遺憾的是,隨 Visual C++ 6.0 釋出的 MFC 4.2 版本中並沒有對 IDocHostUIHandler 介面進行支援(順便說一句,從 Visual C++ 7.0 開始,MFC 已經對該介面進行了支援),所以這些問題在 Visual C++ 6.0 中比較突出。
為了解決此問題,老漢特意寫了一個類來完成此工作(程式碼見下)。該類名為 CWebUIController,使用很簡單,以對話方塊上包含了 WebBrowser 控制元件為例:
假設對話方塊上的 WebBrowser 控制元件對應的變數名為 m_webNavigator,則需要以下步驟:
1、向對話方塊類中新增 CWebUIController m_webUICtrl;
2、在對話方塊的 OnInitDialog 函式中加入以下程式碼:
3、在對話方塊的 OnDestroy 函式中加入以下程式碼:
m_webADCtrl->SetWebBrowser( NULL );
也可以在執行時呼叫 Enable3DBorder() 或者 EnableScrollBar(),呼叫完成後請呼叫 WebBrowser 控制元件的重新整理功能。
該類實現於一個獨立的標頭檔案 WebUIController.h 中,其完整原始碼如下;從原始碼中不難看出,還可以很容易的擴充此類的功能,例如控制關聯選單的顯示等等。
以上方式實現後在開啟web頁後如果設定未起效,這時你應該呼叫web控制元件的重新整理功能重新整理一下頁面即可!還有一點開啟頁面應該放在設定之後進行!
相關文章
- WebBrowser 控制元件-說明Web控制元件
- webbrowser控制元件使用時的注意事項Web控制元件
- 遮蔽WebBrowser2控制元件聲音Web控制元件
- WebBrowser 控制元件設計模式設定Web控制元件設計模式
- iOS 使用UI控制元件的外觀協議UIAppearance進行設定預設UI控制元件樣式iOSUI控制元件協議APP
- win32 sdk下呼叫webbrowser控制元件Win32Web控制元件
- WP7 如何禁用WebBrowser 控制元件縮放和左右移動Web控制元件
- Windows Phone 7 如何禁用WebBrowser 控制元件縮放和左右移動WindowsWeb控制元件
- 讓Webbrowser、CDHtmlDialog中的控制元件顯示為系統主題樣式WebHTML控制元件
- 使用WebBrowser控制元件獲取網頁原始碼的方法Web控制元件網頁原始碼
- 網站狀態驗證WebBrowser控制元件實現網站Web控制元件
- webbrowser 控制 頁面Web
- Windows Phone 7 開發 31 日談——第18日:WebBrowser控制元件WindowsWeb控制元件
- WPF執行緒中獲取控制元件的值和給控制元件賦值執行緒控制元件賦值
- 下拉控制元件jQuery外掛控制元件jQuery
- 基於 Lotus Expeditor 平臺構建可定製外觀的自定義控制元件控制元件
- WPF建立不規則窗體時WebBrowser控制元件不顯示的問題Web控制元件
- 在執行時使用滑鼠移動控制元件和改變控制元件的大小 (轉)控制元件
- 如何控制元件網頁中的REALONE外掛控制元件網頁
- 風雲的銀光志Silverlight4.0教程之WebBrowser控制元件(Silverlight內建HTML瀏覽器控制元件)Web控制元件HTML瀏覽器
- silverlight控制元件模型之選擇控制元件和列表控制元件控制元件模型
- JS修改當前控制元件樣式&為控制元件追加事件JS控制元件事件
- Qt對基本控制元件進行美化 QStyle和QStyleSheetQT控制元件
- SAP UI5 的 TimePicker ,一個鐘錶外觀的時間選擇控制元件試讀版UI控制元件
- .NET 開源扁平化、美觀的 C/S 控制元件庫控制元件
- Flutter控制元件--Switch 和 SwitchListTileFlutter控制元件
- WPF進階技巧和實戰03-控制元件(3-文字控制元件及列表控制元件)控制元件
- WPF進階技巧和實戰03-控制元件(4-基於範圍的控制元件及日期控制元件)控制元件
- 訊息處理:利用控制元件的動態派生[RunTime],為控制元件新增該控制元件未定義的訊息對映 (轉)控制元件
- android 獲取控制元件大小和設定調整控制元件的位置XYAndroid控制元件
- 自定義控制元件中的控制元件呼叫引用控制元件的頁面裡的函式 (轉)控制元件函式
- 程式碼控制 textarea 控制元件是否為KindEditor 編輯框控制元件
- Flutter控制元件--Row、Column和StackFlutter控制元件
- 一款開源免費美觀的WinForm UI控制元件庫 - ReaLTaiizorORMUI控制元件AI
- 將 fastreport 封裝為 ocx 控制元件AST封裝控制元件
- 為DataGrid新增CheckBox控制元件 (轉)控制元件
- 外觀模式及其改進(二):抽象外觀類的引入模式抽象
- Avalonia 中的樣式和控制元件主題控制元件