亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

c# winform窗口一直置頂顯示在桌面最上方或最底層的方法

2020-01-24 03:36:32
字體:
來源:轉載
供稿:網友

一、

在最前面:
using System.Runtime.InteropServices;
在定義部分引入下面兩個函數:
[DllImport( "user32 ")]
private static extern IntPtr FindWindow(string lpClassName,string lpWindowName);
[DllImport( "user32 ")]
private static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent);
在窗體On_Load事件中添加(Santos的代碼):
IntPtr hDeskTop=FindWindow( "Progman ", "Program Manager ");
SetParent(this.Handle,hDeskTop);
另一個方法可以修改桌面壁紙實現
經測試,win2000--win2003 、xp下嵌入桌面,不支持vista和win7以上系統

二、

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace ShowInDesk { publicpartialclass Form1 : Form { IntPtr hDesktop; publicconstint GW_CHILD =5; public Form1() { InitializeComponent(); this.hDesktop = GetDesktopHandle(DesktopLayer.Progman); EmbedDesktop(this, this.Handle, this.hDesktop); isMouseDown =false; } public IntPtr GetDesktopHandle(DesktopLayer layer) { //hWnd = new HandleRef(); HandleRef hWnd; IntPtr hDesktop =new IntPtr(); switch (layer) { case DesktopLayer.Progman: hDesktop = Win32Support.FindWindow("Progman", null);//第一層桌面 break; case DesktopLayer.SHELLDLL: hDesktop = Win32Support.FindWindow("Progman", null);//第一層桌面 hWnd =new HandleRef(this, hDesktop); hDesktop = Win32Support.GetWindow(hWnd, GW_CHILD);//第2層桌面 break; case DesktopLayer.FolderView: hDesktop = Win32Support.FindWindow("Progman", null);//第一層桌面 hWnd =new HandleRef(this, hDesktop); hDesktop = Win32Support.GetWindow(hWnd, GW_CHILD);//第2層桌面 hWnd =new HandleRef(this, hDesktop); hDesktop = Win32Support.GetWindow(hWnd, GW_CHILD);//第3層桌面 break; } return hDesktop; } publicvoid EmbedDesktop(Object embeddedWindow, IntPtr childWindow, IntPtr parentWindow) { Form window = (Form)embeddedWindow; HandleRef HWND_BOTTOM =new HandleRef(embeddedWindow, new IntPtr(1)); constint SWP_FRAMECHANGED =0x0020;//發送窗口大小改變消息 Win32Support.SetParent(childWindow, parentWindow); Win32Support.SetWindowPos(new HandleRef(window, childWindow), HWND_BOTTOM, 300, 300, window.Width, window.Height, SWP_FRAMECHANGED); } } } 

2、

using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; namespace ShowInDesk { class Win32Support { [DllImport("user32.dll", CharSet = CharSet.Auto)] publicstaticextern IntPtr FindWindow(string className, string windowName); [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling =true)] publicstaticextern IntPtr GetWindow(HandleRef hWnd, int nCmd); [DllImport("user32.dll")] publicstaticextern IntPtr SetParent(IntPtr child, IntPtr parent); [DllImport("user32.dll", EntryPoint ="GetDCEx", CharSet = CharSet.Auto, ExactSpelling =true)] publicstaticextern IntPtr GetDCEx(IntPtr hWnd, IntPtr hrgnClip, int flags); [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling =true)] publicstaticexternbool SetWindowPos(HandleRef hWnd, HandleRef hWndInsertAfter, int x, int y, int cx, int cy, int flags); [DllImport("user32.dll")] publicstaticexternint ReleaseDC(IntPtr window, IntPtr handle); } } 

3、

namespace ShowInDesk { publicenum DesktopLayer { Progman =0, SHELLDLL =1, FolderView =2 } } 

三、
入桌面窗口最底層,并提供詳細的實現代碼供參考。
此類將窗體永遠置于窗口最底層。
首先, 調用一些User32.dll的WinAPI函數。

internal class User32 { public const int SE_SHUTDOWN_PRIVILEGE =0x13; [DllImport("user32.dll")] public static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport("user32.dll")] public static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent); [DllImport("user32.dll")] public static externbool SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags); } 

然后, 在WinForm里面:

public MainForm(){InitializeComponent();try{if (Environment.OSVersion.Version.Major <6){base.SendToBack();IntPtr hWndNewParent = User32.FindWindow("Progman", null);User32.SetParent(base.Handle, hWndNewParent);}else{User32.SetWindowPos(base.Handle, 1, 0, 0, 0, 0, User32.SE_SHUTDOWN_PRIVILEGE);}}catch (ApplicationException exx){MessageBox.Show(this, exx.Message, "Pin to Desktop");}}private void MainForm_Activated(object sender, EventArgs e){if (Environment.OSVersion.Version.Major >=6){User32.SetWindowPos(base.Handle, 1, 0, 0, 0, 0, User32.SE_SHUTDOWN_PRIVILEGE);}}private void MainForm_Paint(object sender, PaintEventArgs e){if (Environment.OSVersion.Version.Major >=6){User32.SetWindowPos(base.Handle, 1, 0, 0, 0, 0, User32.SE_SHUTDOWN_PRIVILEGE);}}


以上介紹的就是C#如何讓WinForm嵌入桌面窗口最底層,希望對你有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产亚洲欧洲在线| 日韩av在线一区二区| 久久久91精品国产一区不卡| 亚洲乱码av中文一区二区| 欧美日韩免费观看中文| 欧美激情videoshd| 日本电影亚洲天堂| 亚洲乱码一区二区| 国产一区视频在线播放| 欧洲精品在线视频| 久久五月情影视| 久久久亚洲国产天美传媒修理工| 欧美做爰性生交视频| 日韩中文字幕国产| 91免费国产网站| 中文字幕国产精品| 亚洲色图35p| 91国内在线视频| 亚洲综合中文字幕在线观看| 国产成人精品视频在线观看| 久久6免费高清热精品| 国产精品专区h在线观看| 日本高清不卡的在线| 欧美精品久久久久久久免费观看| 国产精品色视频| 日韩电影免费在线观看中文字幕| 亚洲精品日韩在线| 亚洲最大的av网站| 91高清免费视频| 欧美性理论片在线观看片免费| 日韩av在线免费| 亚洲视频在线观看网站| 欧美精品做受xxx性少妇| 欧美激情免费看| 欧美性猛交xxxx免费看漫画| 欧美精品video| 欧美二区乱c黑人| 亚洲美女精品成人在线视频| 欧美孕妇孕交黑巨大网站| 色悠久久久久综合先锋影音下载| 欧美视频在线看| 91在线免费网站| 69久久夜色精品国产7777| 九色91av视频| 国产精品精品久久久久久| 欧美性受xxx| 成人综合网网址| 4438全国亚洲精品在线观看视频| 亚洲香蕉av在线一区二区三区| 久久国产精品久久久久久| 欧美性xxxxx极品| 91香蕉嫩草神马影院在线观看| 亚洲自拍偷拍福利| 日韩精品视频免费| 久久伊人91精品综合网站| 91国内免费在线视频| 亚洲欧美在线一区二区| 日韩精品久久久久| 在线观看日韩av| 亚洲国产一区自拍| 91天堂在线观看| 国产精品国产三级国产专播精品人| 亚洲欧美日韩国产中文专区| 夜夜嗨av色综合久久久综合网| 在线观看精品国产视频| 欧美裸体xxxx极品少妇软件| 欧美大尺度激情区在线播放| 久久精品中文字幕一区| 91在线观看免费高清完整版在线观看| 国产精品成人av在线| 精品调教chinesegay| 亚洲国产私拍精品国模在线观看| 中文亚洲视频在线| 亚洲人成伊人成综合网久久久| 久久久噜噜噜久久| 最近的2019中文字幕免费一页| 亚洲精品xxxx| 亚洲色图日韩av| 成人午夜高潮视频| 欧美成人一区在线| 欧美日韩国产精品一区二区不卡中文| 欧美激情一级二级| 国产精品电影一区| 亚洲精品福利免费在线观看| 久久久久久久久久久av| 亚洲第一精品夜夜躁人人爽| 欧美一区三区三区高中清蜜桃| 最近2019中文字幕mv免费看| 亚洲美女自拍视频| 亚洲18私人小影院| 日韩中文字幕在线免费观看| 欧美一级在线亚洲天堂| 中文字幕日本欧美| 欧美激情亚洲综合一区| 亚洲天堂网在线观看| 日av在线播放中文不卡| 久久的精品视频| 国内免费久久久久久久久久久| 欧美洲成人男女午夜视频| 日韩在线免费av| 国产情人节一区| 久久精品99久久久香蕉| 福利二区91精品bt7086| 亚洲欧洲一区二区三区在线观看| 亚洲人成在线一二| 亚洲免费伊人电影在线观看av| 欧洲午夜精品久久久| 久久精品国产亚洲7777| 亚洲人成在线观看网站高清| 成人在线一区二区| 日韩在线视频线视频免费网站| yellow中文字幕久久| 久久免费福利视频| 亚洲精品一二区| 欧美性猛交xxxx乱大交极品| 日韩中文字幕国产精品| 91在线无精精品一区二区| 亚洲女人初尝黑人巨大| 欧美精品一区二区三区国产精品| 欧美激情按摩在线| 久热爱精品视频线路一| 国产视频精品久久久| 中文综合在线观看| 欧美肥老太性生活视频| 中文字幕亚洲无线码a| 国产精品久久一区| 国产欧美日韩综合精品| 国产成人精品电影| 精品国产福利在线| 黑人极品videos精品欧美裸| 精品久久久久久中文字幕一区奶水| 亚洲色图狂野欧美| 91精品国产91久久久久| 中文国产亚洲喷潮| 国产精品久久一| 九九久久久久久久久激情| 久久99青青精品免费观看| 91精品国产自产在线老师啪| 91精品视频免费看| 色婷婷av一区二区三区久久| 欧美激情第一页xxx| 亚洲一区二区三区sesese| 日韩在线观看视频免费| 成人性生交大片免费看小说| 国产亚洲欧美视频| 日韩网站免费观看高清| 欧美日韩亚洲一区二| 国产精品高清免费在线观看| 欧美日韩在线视频一区二区| 亚洲国产精品人久久电影| 日韩精品福利在线| 精品露脸国产偷人在视频| 欧美日韩激情视频| 一区二区日韩精品| 秋霞av国产精品一区| 奇米四色中文综合久久| 亚洲国产婷婷香蕉久久久久久| 久久久国产精彩视频美女艺术照福利| 欧美成人午夜激情视频| 国产美女精彩久久| 欧美大码xxxx| 亚洲毛片在线观看| 欧美与黑人午夜性猛交久久久| 亚洲精品福利在线观看|