如何在桌面嵌入窗体

上传人:kms****20 文档编号:41490018 上传时间:2018-05-29 格式:DOC 页数:4 大小:28.50KB
返回 下载 相关 举报
如何在桌面嵌入窗体_第1页
第1页 / 共4页
如何在桌面嵌入窗体_第2页
第2页 / 共4页
如何在桌面嵌入窗体_第3页
第3页 / 共4页
如何在桌面嵌入窗体_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《如何在桌面嵌入窗体》由会员分享,可在线阅读,更多相关《如何在桌面嵌入窗体(4页珍藏版)》请在金锄头文库上搜索。

1、如何在桌面嵌入窗体如何在桌面嵌入窗体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 ShowInDeskpublic partial class Form1 : FormIntPtr hDesktop;public const int G

2、W_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 (la

3、yer)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.Fo

4、lderView: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;public void EmbedDesk

5、top(Object embeddedWindow, IntPtr childWindow, IntPtr parentWindow)Form window = (Form)embeddedWindow;HandleRef HWND_BOTTOM = new HandleRef(embeddedWindow, new IntPtr(1);const int SWP_FRAMECHANGED = 0x0020;/发送窗口大小改变消息Win32Support.SetParent(childWindow, parentWindow);Win32Support.SetWindowPos(new Han

6、dleRef(window, childWindow), HWND_BOTTOM, 300, 300, window.Width, window.Height, SWP_FRAMECHANGED);using System;using System.Collections.Generic;using System.Text;using System.Runtime.InteropServices;namespace ShowInDeskclass Win32SupportDllImport(“user32.dll“, CharSet = CharSet.Auto)public static e

7、xtern IntPtr FindWindow(string className, string windowName);DllImport(“user32.dll“, CharSet = CharSet.Auto, ExactSpelling = true)public static extern IntPtr GetWindow(HandleRef hWnd, int nCmd);DllImport(“user32.dll“)public static extern IntPtr SetParent(IntPtr child, IntPtr parent);DllImport(“user3

8、2.dll“, EntryPoint = “GetDCEx“, CharSet = CharSet.Auto, ExactSpelling = true)public static extern IntPtr GetDCEx(IntPtr hWnd, IntPtr hrgnClip, int flags);DllImport(“user32.dll“, CharSet = CharSet.Auto, ExactSpelling = true)public static extern bool SetWindowPos(HandleRef hWnd, HandleRef hWndInsertAfter, int x, int y, int cx, int cy, int flags);DllImport(“user32.dll“)public static extern int ReleaseDC(IntPtr window, IntPtr handle);namespace ShowInDeskpublic enum DesktopLayerProgman = 0,SHELLDLL = 1,FolderView = 2

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号