是否有可能創造一個沒有窗戶的MFC C++的應用程序,將包括透明瀏覽器組件(具有默認透明背景)和一個按鈕的(這將在XP運行)(即沃爾德例如關閉該應用)?是否可以創建一個由透明瀏覽器組件組成的無窗口mfc C++應用程序?
1
A
回答
1
不會。在MFC應用程序中託管WebBrowser
組件並在非客戶端區域繪製一個關閉按鈕沒有問題,但WebBrowser
組件本身將呈現背景。
2
你可以試試下面的代碼,但是有選擇或調整時,仍然會假象:
private void WebCtrl_Loaded(object sender, RoutedEventArgs e)
{
var hRef = new HandleRef(null, WebCtrl.Handle);
int style = GetWindowLong(hRef, GWL_EXSTYLE);
if ((style & WS_EX_TRANSPARENT) == 0)
SetWindowLong(hRef, GWL_EXSTYLE, style | WS_EX_TRANSPARENT);
style = GetWindowLong(hRef, GWL_STYLE);
if ((style & WS_CLIPCHILDREN) == 0)
SetWindowLong(hRef, GWL_STYLE, style | WS_CLIPCHILDREN);
}
IntPtr WebCtrl_MessageHook(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
{
if (msg == WM_ERASEBKGND)
handled = true;
return IntPtr.Zero;
}
0
我不認爲你可以做到這一點與標準的web瀏覽器(IE嵌入引擎),因爲它不知道任何有關透明度的願望,並總是會畫出背景。
它可能與替代的HTML引擎,例如HTMLayout。雖然它不如互聯網瀏覽器(沒有JavaScript等),但對於Web風格的UI,它比WebBrowser(更快,使用更少的內存,支持漸變,動畫,高級佈局)要好得多。如果您只需要帶圖片,控件,鏈接,動畫和按鈕的「網絡用戶界面」,並且您使用的是MFC,WTL或純WinAPI,則這是一個不錯的選擇。
0
您是否嘗試捕獲窗口的背景,並將其添加爲瀏覽器組件的背景?當然它會只有,如果你想顯示自己(/團隊)創建的HTML文件,但如果情況並非如此,整個問題將是毫無意義的工作。
我從來沒有試過這樣做,嵌入式瀏覽器,但我做了一些其他控制(如備忘錄框),它的工作。如果你選擇這個解決方案,你應該仍然意識到,當你移動或調整大小時,你必須重新捕獲窗口的背景。
您可以使用您所選擇的解決方案,以顯示在嵌入式瀏覽器的背景,但恕我直言最好的選擇是使用CSS定義的背景,這將與您進行更換。 (不要忘了僞造一個簡單的javascript以刷新窗體大小/移動的背景,以避免無意中重新加載整個文檔。)
有關部分屏幕捕獲的更多信息,請參閱here。
相關問題
- 1. 在MFC中創建透明窗口
- 2. 如何用MFC創建一個完全透明的窗口?
- 3. 是否可以在iOS中創建透明應用程序
- 4. 可以用map v2創建一個透明的信息窗口?
- 5. 如何縮小窗體組件以適應瀏覽器窗口
- 6. Selenium/PHPUnit。是否可以在窗口/瀏覽器之上打開一個乾淨的新窗口/瀏覽器?
- 7. 在非透明父窗口(win 32)上創建一個透明子窗口
- 8. 我可以打開瀏覽器窗口查看由flex 3應用程序創建的圖像嗎?
- 9. 是否可以在Tmux窗格中顯示瀏覽器窗口?
- 10. 如何創建一個無窗口透明活動是否浮動
- 11. 是否可以隱藏python瀏覽器窗口(包括Windows,Linux)?
- 12. 我可以創建一個窗口,其客戶區域是透明的(使用透明度鍵)並點擊?
- 13. 在瀏覽器中創建由en事件調用的C#窗口服務
- 14. 是否可以使用JavaScript關閉瀏覽器窗口?
- 15. 是否可以使用javascript調整瀏覽器窗口大小?
- 16. 如何讓另一個應用程序的窗口透明?
- 17. 我可以爲Metro應用程序創建一個MFC DLL嗎?
- 18. 應用程序是否可以發佈到Web瀏覽器?
- 19. 是否可以在瀏覽器上運行WPF應用程序?
- 20. 是否可以在瀏覽器中運行JavaFX應用程序?
- 21. 使用extjs在瀏覽器內創建一個窗口瀏覽器
- 22. 是否可以創建一個應用程序來檢查窗口上的每個打開的文件?
- 23. 使用angularjs的多個瀏覽器窗口應用程序
- 24. 是否可以從C#程序調用JIT調試器窗口?
- 25. 是否可以在JavaFX中創建一個控制器數組?
- 26. 使窗口應用程序對瀏覽器可見
- 27. 是否可以從Pascal中的數組創建一個數組?
- 28. 透明Java窗口上的不透明組件
- 29. 創建一個瀏覽器類型的應用程序iphone
- 30. 是否可以通過JavaScript關閉瀏覽器窗口?
但有可能使非標準WebBrowser組件的背景透明(背景並不在我們經由瀏覽器中打開CSS文件中定義的)? – myWallJSON 2012-04-13 09:04:37