日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# Winform 窗体美化(九、嵌入窗体)

發(fā)布時間:2025/3/11 C# 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# Winform 窗体美化(九、嵌入窗体) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

九、嵌入窗體

還是關(guān)于 Winform 窗體的一些操作問題,這次是研究了一個嵌入窗體,這次學(xué)習(xí)純屬偶然,項目中確實沒遇到過這種需求。就是把別人的程序嵌入到自己的程序中,就像這樣:

這里我嵌入了測試顯示器的程序

這次學(xué)習(xí)得益于一片博客(引用一定要注明出處 ^_^):
http://www.cnblogs.com/bitzhuwei/archive/2012/05/24/SmileWei_EmbeddedApp.html

關(guān)于嵌入程序的資料,上面鏈接博客的作者寫的非常詳細(xì)了,而且也整理了相關(guān)的代碼,可以下載學(xué)習(xí)。

這里我自己也整理學(xué)習(xí)了一下,有需要可以下載。源碼下載

嵌入過程主要代碼

private void EmbedProcess(Process app, Control control) {//驗證進(jìn)程和控件非空if (app == null || app.MainWindowHandle == IntPtr.Zero || control == null) return;try{//核心代碼:嵌入程序SetParent(app.MainWindowHandle, control.Handle);}catch (Exception) { }try{//移除嵌入的窗口的窗口標(biāo)題欄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. 移除嵌入的窗口的窗口標(biāo)題欄
3. 將嵌入的窗口歐放置到合適位置,填滿寬高

截圖感受一下:
1.嵌入程序

2.移除嵌入的窗口的窗口標(biāo)題欄

3.將嵌入的窗口歐放置到合適位置,填滿寬高

疑問

最后還是有一些疑問沒有解決:
1. 焦點的問題;
2. 有些應(yīng)用不能被嵌入;
3. 有些應(yīng)用嵌入位置可能出現(xiàn)異常;

總結(jié)

以上是生活随笔為你收集整理的C# Winform 窗体美化(九、嵌入窗体)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。