C# 大于屏幕的窗体
2024-08-26 20:48:13
1.使用SetWindowPos就可以做到这一点,只是最后一个参数要选对。
RECT windowRect = new RECT();
User32.GetWindowRect(MyForm2.Handle, ref windowRect);
User32.SetWindowPos(MyForm2.Handle, , , , , , ApiConstants.SWP_NOSENDCHANGING);
2.虽然设置完后窗体的大小改变了,但如果窗体的一旦重绘又会被屏幕大小限制而缩小。所以看下面的代码:
protected override void WndProc(ref Message m)
{
const int WM_GETMINMAXINFO = 0x24;
if (m.Msg == WM_GETMINMAXINFO)
{
MINMAXINFO mmi = (MINMAXINFO)m.GetLParam(typeof(MINMAXINFO));
mmi.ptMinTrackSize.x = this.Size.Width;
mmi.ptMinTrackSize.y = this.Size.Height;
Marshal.StructureToPtr(mmi, m.LParam, true);
}
base.WndProc(ref m);
}
[StructLayout(LayoutKind.Sequential)]
public struct RECT
{
public int left;
public int top;
public int right;
public int bottom;
} public struct POINTAPI
{
public int x;
public int y;
} public struct MINMAXINFO
{
public POINTAPI ptReserved;
public POINTAPI ptMaxSize;
public POINTAPI ptMaxPosition;
public POINTAPI ptMinTrackSize;
public POINTAPI ptMaxTrackSize;
}
以上代码在VS2010+Windows7Ultimate下调试通过,运行达到效果。
最新文章
- 很多人很想知道怎么扫一扫二维码就能打开网站,就能添加联系人,就能链接wifi,今天说下这些格式,明天做个demo
- iOS 开发技术牛人博客
- http学习笔记(三)
- HA模式手动切换namenode状态
- IEnumerable 遍历用法
- jquery 建议编辑器
- Node.js网络编程
- Chapter 1 初探Caffe
- 2.5 Local Methods in High Dimensions
- 怎样将android studio项目导入eclipse
- 【POJ】1704 Georgia and Bob(Staircase Nim)
- linux下磁盘分区详解 图文(fdisk;mkfs)
- 第k个素因子只有3 5 7 的数
- 分布式监控系统开发【day38】:监控数据如何画图(九)
- Asp.Net Form表单控件的回车默认事件
- 用idea部署maven-web项目
- windows上python的安装
- spring cloud + mybatis 分布式 微服务 b2b2c 多商户商城 全球部署方案
- MongoDB存储引擎选择
- sql新语句