• C# 大于屏幕的窗体


    1.使用SetWindowPos就可以做到这一点,只是最后一个参数要选对。

    RECT windowRect = new RECT();
    User32.GetWindowRect(MyForm2.Handle, ref windowRect);
    User32.SetWindowPos(MyForm2.Handle, 0, 0, 0, 5000, 500, 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;        
        }
    View Code

    以上代码在VS2010+Windows7Ultimate下调试通过,运行达到效果。

      

  • 相关阅读:
    RAID卡简介
    参考资料
    Linux中将命令运行结果放到文件中的方法
    C# 语言基础
    Visual Studio 快捷键(收藏)
    深度学习中的优化算法
    Pytorch之线性回归
    Pytorch之Tensor学习
    解决Andaconda创建虚拟环境出现的“无法定位程序输入点”的问题
    Autocad二次开发中的XData
  • 原文地址:https://www.cnblogs.com/nanfei/p/3200159.html
Copyright © 2020-2023  润新知