资源描述:
《如何在桌面嵌入窗体》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、ÈçºÎÔÚ×ÀÃæǶÈë´°Ìå.txt37Õæ³ÏÊÇÃÀ¾Æ£¬Äê·ÝÔ½¾ÃÔ½´¼ÏãŨÁÒ£»Õæ³ÏÊÇÑæ»ð£¬Ôڸߴ¦ÕÀ·Å²ÅÓúÏÔÃÀÀö£»Õæ³ÏÊÇÏÊ»¨£¬ËÍÖ®ÓÚÈË£¬ÊÖÓÐÓàÏã¡£usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSyste
2、m.Windows.Forms;usingSystem.Runtime.InteropServices;namespaceShowInDesk{publicpartialclassForm1:Form{IntPtrhDesktop;publicconstintGW_CHILD=5;publicForm1(){InitializeComponent();this.hDesktop=GetDesktopHandle(DesktopLayer.Progman);EmbedDesktop(this,this.Hand
3、le,this.hDesktop);isMouseDown=false;}publicIntPtrGetDesktopHandle(DesktopLayerlayer){//hWnd=newHandleRef();HandleRefhWnd;IntPtrhDesktop=newIntPtr();switch(layer){caseDesktopLayer.Progman:hDesktop=Win32Support.FindWindow("Progman",null);//µÚÒ»²ã×ÀÃæbreak;cas
4、eDesktopLayer.SHELLDLL:hDesktop=Win32Support.FindWindow("Progman",null);//µÚÒ»²ã×ÀÃæhWnd=newHandleRef(this,hDesktop);hDesktop=Win32Support.GetWindow(hWnd,GW_CHILD);//µÚ2²ã×ÀÃæbreak;caseDesktopLayer.FolderView:hDesktop=Win32Support.FindWindow("Progman",null)
5、;//µÚÒ»²ã×ÀÃæhWnd=newHandleRef(this,hDesktop);hDesktop=Win32Support.GetWindow(hWnd,GW_CHILD);//µÚ2²ã×ÀÃæhWnd=newHandleRef(this,hDesktop);hDesktop=Win32Support.GetWindow(hWnd,GW_CHILD);//µÚ3²ã×ÀÃæbreak;}returnhDesktop;}publicvoidEmbedDesktop(ObjectembeddedWi
6、ndow,IntPtrchildWindow,IntPtrparentWindow){Formwindow=(Form)embeddedWindow;HandleRefHWND_BOTTOM=newHandleRef(embeddedWindow,newIntPtr(1));constintSWP_FRAMECHANGED=0x0020;//·¢ËÍ´°¿Ú´óС¸Ä±äÏûÏ¢Win32Support.SetParent(childWindow,parentWindow);Win32Support.Set
7、WindowPos(newHandleRef(window,childWindow),HWND_BOTTOM,300,300,window.Width,window.Height,SWP_FRAMECHANGED);}}}usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Runtime.InteropServices;namespaceShowInDesk{classWin32Support{[DllImport(
8、"user32.dll",CharSet=CharSet.Auto)]publicstaticexternIntPtrFindWindow(stringclassName,stringwindowName);[DllImport("user32.dll",CharSet=CharSet.Auto,ExactSpelling=true)]publicstaticexternIntPtrGetWindo