找回密码
 加入
搜索
楼主: xms77

[GUI管理] 如何读取Pic控件的图片信息【已解决】

 火.. [复制链接]
发表于 2011-10-14 23:35:26 | 显示全部楼层
回复 15# xms77

很容易解决的一个问题!

    PixelGetColor
--------------------------------------------------------------------------------

返回指定像素位置的象素颜色值.


PixelGetColor ( X 坐标 , Y 坐标[, 句柄] )
 楼主| 发表于 2011-10-14 23:38:21 | 显示全部楼层
回复 17# autoit3CN
是个方法,但是取坐标很麻烦
发表于 2011-10-14 23:50:44 | 显示全部楼层
回复 18# xms77


    看你的截图也没看见几个“灯”,用相对坐标完全可以轻松解决取坐标问题

Opt("CaretCoordMode", 0)        ;Caret 坐标模式:1=绝对位置, 0=相对位置, 2=客户区
发表于 2011-10-15 01:29:37 | 显示全部楼层
替换图片不行吗?
 楼主| 发表于 2011-10-16 20:40:51 | 显示全部楼层
回复 18# autoit3CN
截图只是一部分,总共有63个灯
 楼主| 发表于 2011-10-16 20:42:53 | 显示全部楼层
回复 19# woeiwoei
行,但是不知道现在灯的状态的话,用哪个图片来替换呢?我发这个帖子的目的就是要怎样获取当前灯的状态,然后就是...,你懂得!
发表于 2011-10-16 20:59:29 | 显示全部楼层
如果是自己写的软件我有点想不通为何有这个问题……
LZ不如用简单的例子来说明你需要的结果,我想肯定不需要“获取”图片信息~
发表于 2011-10-17 08:03:16 | 显示全部楼层
这是写脚本代码之前未考虑周全的结果,是一种无奈的补救办法。
 楼主| 发表于 2011-10-17 13:07:58 | 显示全部楼层
回复 22# afan
初始化时是如下语句:
$Pic[0] = GUICtrlCreatePic("C:\windows\no.jpg", 166, 67, 17, 17)
$Pic[1] = GUICtrlCreatePic("C:\windows\no.jpg", 166, 91, 17, 17)
$Pic[2] = GUICtrlCreatePic("C:\windows\no.jpg", 166, 115, 17, 17)
$Pic[3] = GUICtrlCreatePic("C:\windows\no.jpg", 166, 140, 17, 17)
$Pic[4] = GUICtrlCreatePic("C:\windows\no.jpg", 166, 164, 17, 17)
$Pic[5] = GUICtrlCreatePic("C:\windows\no.jpg", 166, 189, 17, 17)
$Pic[6] = GUICtrlCreatePic("C:\windows\no.jpg", 166, 212, 17, 17)
Pic控件复制语句:
$data = UDPRecv($Socket_received, 128)
                If $data <> "" Then
                        ;$data = BinaryToString($data,4)
                        $Data_array = StringSplit($data,"|")
                        If $Data_array[0] = 5 Then
                        ;_ArrayDisplay($Data_array)
                                $Number = StringRight($Data_array[1],2)
                                $Number = $Number - 20
                                GUICtrlSetData($CellID[$Number],$Data_array[2])
                                GUICtrlSetData($Product[$Number],$Data_array[3])
                                GUICtrlSetImage($pic[$Number], "C:\windows\online.jpg")
                                GUICtrlSetData($IP[$Number],$Data_array[4])
                                GUICtrlSetColor($ip[$Number],0x00ff00)
                                GUICtrlSetData($Rev[$Number],$Data_array[5])
                        ElseIf $Data_array[0] = 2 Then
                                GUICtrlSetData($Edit1, $Data_array[1]&">> "&$Data_array[2]&@CRLF,1)
                        EndIf
                        
                EndIf
发表于 2011-10-17 13:29:15 | 显示全部楼层
Gobal $OLPic[7]

GUICtrlSetImage($pic[$Number], "C:\windows\online.jpg") 之后 $OLPic[$Number] = 1

以后读取 $OLPic[$Number] = 1 即相当于 $Pic[$Number] 控件是 C:\windows\online.jpg
 楼主| 发表于 2011-10-17 20:53:25 | 显示全部楼层
回复 25# afan
谢谢afan大大,我也曾经考虑过创建一个数组来保存图片的状态信息的,一直在寻找更简单的判断方法,看来还是只能用这个方法了!
发表于 2011-10-18 11:25:37 | 显示全部楼层
回复 26# xms77


    还有比赋值、取值更简单的吗 (⊙_⊙)?
发表于 2011-10-20 11:43:48 | 显示全部楼层
ddddddddddddddddd抽空看看
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-6 07:15 , Processed in 0.074164 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表