C# Winform 窗体美化(九、嵌入窗体)
生活随笔
收集整理的這篇文章主要介紹了
C# Winform 窗体美化(九、嵌入窗体)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
九、嵌入窗體
還是關于 Winform 窗體的一些操作問題,這次是研究了一個嵌入窗體,這次學習純屬偶然,項目中確實沒遇到過這種需求。就是把別人的程序嵌入到自己的程序中,就像這樣:
這里我嵌入了測試顯示器的程序
這次學習得益于一片博客(引用一定要注明出處 ^_^):
http://www.cnblogs.com/bitzhuwei/archive/2012/05/24/SmileWei_EmbeddedApp.html
關于嵌入程序的資料,上面鏈接博客的作者寫的非常詳細了,而且也整理了相關的代碼,可以下載學習。
這里我自己也整理學習了一下,有需要可以下載。源碼下載
嵌入過程主要代碼
private void EmbedProcess(Process app, Control control) {//驗證進程和控件非空if (app == null || app.MainWindowHandle == IntPtr.Zero || control == null) return;try{//核心代碼:嵌入程序SetParent(app.MainWindowHandle, control.Handle);}catch (Exception) { }try{//移除嵌入的窗口的窗口標題欄SetWindowLong(new HandleRef(this, app.MainWindowHandle), GWL_STYLE, WS_VISIBLE);}catch (Exception) { }try{//將嵌入的窗口歐放置到合適位置,填滿寬高MoveWindow(app.MainWindowHandle, 0, 0, control.Width, control.Height, true);}catch (Exception) { } }效果圖
這里可以看到嵌入程序的三個步驟:
1. 嵌入程序
2. 移除嵌入的窗口的窗口標題欄
3. 將嵌入的窗口歐放置到合適位置,填滿寬高
截圖感受一下:
1.嵌入程序
2.移除嵌入的窗口的窗口標題欄
3.將嵌入的窗口歐放置到合適位置,填滿寬高
疑問
最后還是有一些疑問沒有解決:
1. 焦點的問題;
2. 有些應用不能被嵌入;
3. 有些應用嵌入位置可能出現異常;
總結
以上是生活随笔為你收集整理的C# Winform 窗体美化(九、嵌入窗体)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: winform中textbox属性Mul
- 下一篇: ASP.NET 缓存 Cache