本帖最后由 斗战胜猴 于 2025-6-30 20:39 编辑
思路就是载入窗口 偷个懒用画板了,也可以用图片窗口判断位置啥的,截图,再转一份暗度图 画板的底图=暗度图,再画鼠标选取区域原图 DC复制到画板窗口句柄位置画的区域,回调 取出区域位图或取出区域坐标。实现 选取区域是原图,其他区域是暗度图,
使用画板画了4根线条 做选取区域的演示。未做多余调整。
修复bug 之前只支持2向选取区域考虑不周, 计算区域 现支持选取鼠标区域 从左上到右下,左下到右上,右下到左上 ,右上到左下。
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_Rect | RECT | | | 局_x | 整数型 | | | 局_y | 整数型 | | | 局_w | 整数型 | | | 局_h | 整数型 | | |
局_Rect.Left = Min_Int (Rect.Left, Rect.Right )局_Rect.Right = Max_Int (Rect.Left, Rect.Right )局_Rect.Top = Min_Int (Rect.Top, Rect.Bottom )局_Rect.Bottom = Max_Int (Rect.Top, Rect.Bottom )局_w = 局_Rect.Right - 局_Rect.Left 局_h = 局_Rect.Bottom - 局_Rect.Top 局_x = 选择 (局_Rect.Left = 局_w, 局_Rect.Right, 局_Rect.Left )局_y = 选择 (局_Rect.Bottom = 局_h, 局_Rect.Bottom, 局_Rect.Top )位置和大小.Left = 局_x 位置和大小.Top = 局_y 位置和大小.Right = 局_w 位置和大小.Bottom = 局_h 位置和大小.Right = 选择 (位置和大小.Right ≤ 0, 1, 位置和大小.Right )位置和大小.Bottom = 选择 (位置和大小.Bottom ≤ 0, 1, 位置和大小.Bottom )复制区域 (局_x, 局_y, 局_w, 局_h )置入代码 ({ 139, 69, 8, 59, 69, 12, 114, 3, 139, 69, 12, 201, 194, 8, 0 })返回 (0 )置入代码 ({ 139, 69, 8, 59, 69, 12, 119, 3, 139, 69, 12, 201, 194, 8, 0 })返回 (0 )
补充内容 (2025-7-1 17:18):
.版本 2
.子程序 计算区域
位置和大小.Left = Min_Int (Rect.Left, Rect.Right)
位置和大小.Top = Min_Int (Rect.Top, Rect.Bottom)
位置和大小.Right = Max_Int (Rect.Left, Rect.Right) - 位置和大小.Left
位置和大小.Bottom = Max_Int (Rect.Top, Rect.Bottom) - 位置和大小.Top
位置和大小.Right = 选择 (位置和大小.Right ≤ 0, 1, 位置和大小.Right)
位置和大小.Bottom = 选择 (位置和大小.Bottom ≤ 0, 1, 位置和大小.Bottom)
复制区域 (位置和大小.Left, 位置和大小.Top, 位置和大小.Right, 位置和大小.Bottom)
|