您的位置:首页 > 财经 > 金融 > 上海电商设计公司_新闻app开发_网站搜索优化官网_google play官网

上海电商设计公司_新闻app开发_网站搜索优化官网_google play官网

2024/11/16 2:11:05 来源:https://blog.csdn.net/weixin_52473844/article/details/143568629  浏览:    关键词:上海电商设计公司_新闻app开发_网站搜索优化官网_google play官网
上海电商设计公司_新闻app开发_网站搜索优化官网_google play官网
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;namespace WinFormsApp4
{public partial class Form1 : Form{private static System.Threading.Timer _timer;// WinAPI 函数声明[DllImport("user32.dll", SetLastError = true)]private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);[DllImport("user32.dll", SetLastError = true)]private static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);[DllImport("user32.dll")]private static extern int GetWindowLong(IntPtr hWnd, int nIndex);[DllImport("user32.dll")]private static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);private const int GWL_EXSTYLE = -20;private const uint SWP_NOZORDER = 0x0004;private const uint SWP_NOACTIVATE = 0x0010;private const int WS_EX_TOPMOST = 0x00000008;private const int WS_EX_NOTOPMOST = 0x00000004;private const int SWP_NOMOVE = 0x0002; // 不改变窗口位置private const int SWP_NOSIZE = 0x0001; // 不改变窗口大小private IntPtr _targetWindowHandle;public Form1(){InitializeComponent();// 订阅窗体移动和缩放事件this.Resize += MainForm_Resize;this.Move += MainForm_Move;_timer = new System.Threading.Timer(TimerCallback, null, 0, 500);}private void TimerCallback(Object o){string className = "WeChatMainWndForPC"; // 修改为实际的类名  string windowName = "微信"; // 修改为实际的窗口标题  // 找到微信窗口的句柄  _targetWindowHandle = FindWindow(className, windowName);if (_targetWindowHandle == IntPtr.Zero){MessageBox.Show("未找到目标窗口!");return;}// 设置窗口的位置和大小  int x = 50;int y = 50;int width = 1920;int height = 1000;Size clientSize = this.ClientSize;Console.WriteLine($"内容区域宽度: {clientSize.Width}, 内容区域高度: {clientSize.Height}");// 获取整个窗体的大小(包括边框和标题栏)Size formSize = this.Size;Console.WriteLine($"窗体宽度: {formSize.Width}, 窗体高度: {formSize.Height}");if(clientSize.Width != width || clientSize.Height != height){SetWindowPos(_targetWindowHandle, new IntPtr(-1), this.Location.X + 100, this.Location.Y + 100, (int)(clientSize.Width * 0.8), (int)(clientSize.Height * 0.8), SWP_NOZORDER | SWP_NOACTIVATE);}// 设置目标窗口置顶}private void MainForm_Resize(object sender, EventArgs e){Size clientSize = this.ClientSize;Console.WriteLine($"内容区域宽度: {clientSize.Width}, 内容区域高度: {clientSize.Height}");// 获取整个窗体的大小(包括边框和标题栏)Size formSize = this.Size;Console.WriteLine($"窗体宽度: {formSize.Width}, 窗体高度: {formSize.Height}");// 在这里调整目标窗口的大小if (_targetWindowHandle != IntPtr.Zero){int width = this.Width;int height = this.Height;// 根据需要调整大小和位置SetWindowPos(_targetWindowHandle, new IntPtr(-1), this.Location.X + 100, this.Location.Y +100, (int)(clientSize.Width * 0.8), (int)(clientSize.Height * 0.8), SWP_NOZORDER | SWP_NOACTIVATE);}}private void MainForm_Move(object sender, EventArgs e){Size clientSize = this.ClientSize;Console.WriteLine($"内容区域宽度: {clientSize.Width}, 内容区域高度: {clientSize.Height}");// 获取整个窗体的大小(包括边框和标题栏)Size formSize = this.Size;Console.WriteLine($"窗体宽度: {formSize.Width}, 窗体高度: {formSize.Height}");// 在这里调整目标窗口的位置if (_targetWindowHandle != IntPtr.Zero){// 根据需要调整位置SetWindowPos(_targetWindowHandle, new IntPtr(-1), this.Location.X + 100, this.Location.Y + 100, (int)(clientSize.Width * 0.8), (int)(clientSize.Height * 0.8), SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE);}}protected override void OnLoad(EventArgs e){base.OnLoad(e);// 获取内容区域的大小(不包括边框和标题栏)Size clientSize = this.ClientSize;Console.WriteLine($"内容区域宽度: {clientSize.Width}, 内容区域高度: {clientSize.Height}");// 获取整个窗体的大小(包括边框和标题栏)Size formSize = this.Size;Console.WriteLine($"窗体宽度: {formSize.Width}, 窗体高度: {formSize.Height}");// 注意:在OnLoad事件中,如果窗体还未完全显示,// 那么在某些情况下,Size属性可能不是最终的显示大小。// 如果您需要确保获取到最终的显示大小,// 可以考虑在窗体的Shown事件中进行这些操作。}}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com