.NET 中 对窗口中某一控件全屏显示的方法二则
来源:互联网 发布:osi参考模型吧网络分为 编辑:程序博客网 时间:2024/05/13 04:20
示例一:
采用API的形式调用,同时将API的调用封装成一个库,废话不说,直接上代码:
using System;using System.Collections.Generic;using System.Text;using System.Runtime.InteropServices;using System.Windows.Forms;namespace FullScreenActiveX{ public class FullScreenHelper { bool m_bFullScreen = false; IntPtr m_OldWndParent = IntPtr.Zero; WINDOWPLACEMENT m_OldWndPlacement = new WINDOWPLACEMENT(); Control m_control = null; public FullScreenHelper(Control c) { m_control = c; } [DllImport("User32.dll")] static extern bool LockWindowUpdate(IntPtr hWndLock); struct POINT { int x; int y; } ; struct RECT { public int left; public int top; public int right; public int bottom; } ; [DllImport("User32.dll")] static extern bool SetWindowPlacement(IntPtr hWnd, ref WINDOWPLACEMENT lpwndpl); [DllImport("User32.dll")] static extern IntPtr SetParent(IntPtr hWndChild, IntPtr hWndNewParent); [DllImport("User32.dll")] static extern bool SetForegroundWindow(IntPtr hWnd); [DllImport("User32.dll")] static extern IntPtr GetDesktopWindow(); [DllImport("User32.dll")] static extern bool GetWindowPlacement(IntPtr hWnd, ref WINDOWPLACEMENT lpwndpl); [DllImport("User32.dll")] static extern int GetSystemMetrics(int nIndex); public void FullScreen() { if (m_bFullScreen) { LockWindowUpdate(m_control.Handle); SetParent(m_control.Handle, m_OldWndParent); SetWindowPlacement(m_control.Handle, ref m_OldWndPlacement); SetForegroundWindow(m_OldWndParent); LockWindowUpdate(IntPtr.Zero); } else { GetWindowPlacement(m_control.Handle, ref m_OldWndPlacement); int nScreenWidth = GetSystemMetrics(0); int nScreenHeight = GetSystemMetrics(1); m_OldWndParent = m_control.Parent.Handle; SetParent(m_control.Handle, GetDesktopWindow()); WINDOWPLACEMENT wp1 = new WINDOWPLACEMENT(); wp1.length = (uint)Marshal.SizeOf(wp1); wp1.showCmd = 1; wp1.rcNormalPosition.left = 0; wp1.rcNormalPosition.top = 0; wp1.rcNormalPosition.right = nScreenWidth; wp1.rcNormalPosition.bottom = nScreenHeight; SetWindowPlacement(m_control.Handle, ref wp1); SetForegroundWindow(GetDesktopWindow()); SetForegroundWindow(m_control.Handle); } m_bFullScreen = !m_bFullScreen; } struct WINDOWPLACEMENT { public uint length; public uint flags; public uint showCmd; public POINT ptMinPosition; public POINT ptMaxPosition; public RECT rcNormalPosition; } ; }}
示例二,根据C#中的类,查看系统中有几个显示器,然后,将控件的大小和定位设置到相应的尺寸,该功能可以满足多显示器下的使用
private void FillScreenDisplay(Control control, bool fill){if(fill){control.Dock = DockStyle.None;control.Left = 0;control.Top = 0;control.Width = Screen.PrimaryScreen.Bounds.Width;control.Height = Screen.PrimaryScreen.Bounds.Height;SetParent(this[pos].Handle,IntPtr.Zero);base.Parent.Hide();}else{SetParent(control,this.Handle);base.Parent.Show();}}
- .NET 中 对窗口中某一控件全屏显示的方法二则
- QT中全屏显示子窗口的方法
- QT中全屏显示子窗口的方法
- MFC中全屏窗口的方法
- Activex控件中显示MFC窗口方法
- .net开发笔记之六:从DataGrid控件中取某一单元格的显示值
- MFC框架中视图窗口全屏显示
- MFC框架中视图窗口全屏显示
- MFC框架中视图窗口全屏显示
- MFC框架中视图窗口全屏显示
- QT中关于窗口全屏显示与退出全屏的实现
- QT中关于窗口全屏显示与退出全屏的实现
- mfc 窗口控件全屏显示
- 如何本窗口的COMMAND1中调用另外一个窗口中的某一控件的某一个事件
- 在Android中实现全屏显示的方法
- 在Android中实现全屏显示的方法
- Android中让界面全屏显示的方法
- 显示eclipse中Problem窗口的方法
- 向Web开发人员推荐12款优秀的 Twitter Bootstrap 组件和工具
- 编译错误"/usr/bin/ld: cannot find -lz"
- [Perl工具篇] 安装Strawberry Perl与第一个Perl程序(Padre下)
- ExtJS 主要组件
- 驱动该如何入门 关于file_operations和Linux设备模型
- .NET 中 对窗口中某一控件全屏显示的方法二则
- java基础学习笔记之九--线程(3)
- 下载android内核源码
- 2012->2013
- U.K.科学发现年幼受蹂躏长大易忧郁
- vi/vim键盘图
- C++阴暗面
- 修改http的输出
- FreeSWITCH + 大唐网关 建立呼叫中心