我想制作一个SS应用程序.但我对这个问题有疑问.我希望用户能够选择一个特殊区域来截取屏幕截图.我还希望桌面在用户选择区域时处于活动状态.例如,用户想要拍摄视频特定帧的SS.用户必须能够在播放视频时执行此操作.我已经尝试使用直接在桌面上绘图.但它闪烁得那么厉害.我该如何解决这个问题还是有其他办法吗?
我的代码:
[DllImport("User32.dll")] static extern IntPtr GetDC(IntPtr hwnd); [DllImport("user32.dll")] static extern bool InvalidateRect(IntPtr hWnd, IntPtr lpRect, bool bErase); public Form1() { InitializeComponent(); this.Load += Form1_Load; } void Form1_Load(object sender, EventArgs e) { Start(); } IntPtr handle; Graphics grp; void Start() { handle = GetDC(IntPtr.Zero); grp = Graphics.FromHdc(handle); grp.SmoothingMode = SmoothingMode.HighQuality; timer2.Start(); } private void timer2_Tick(object sender, EventArgs e) { grp.DrawLine(Pens.Red, 0, Cursor.Position.Y, Screen.PrimaryScreen.Bounds.Width, Cursor.Position.Y); InvalidateRect(IntPtr.Zero, IntPtr.Zero, false); }
miroxlav.. 5
创建具有半透明(或完全透明)背景的表单,该表单始终在顶部,无边框且与桌面大小相同.在该表单上执行任何屏幕截图矩形选择图形(例如,选定的矩形+指南+放大镜,完全不透明).当用户进行选择时,隐藏表单并截取屏幕截图.
创建具有半透明(或完全透明)背景的表单,该表单始终在顶部,无边框且与桌面大小相同.在该表单上执行任何屏幕截图矩形选择图形(例如,选定的矩形+指南+放大镜,完全不透明).当用户进行选择时,隐藏表单并截取屏幕截图.