找回密码
 加入
搜索
查看: 8536|回复: 16

[AU3基础] _ImageDraw此函数的定义已经列出,如何理解,求高手帮忙!(已解决)

 火.. [复制链接]
发表于 2010-8-23 11:56:04 | 显示全部楼层 |阅读模式
本帖最后由 yiruirui 于 2010-8-30 09:17 编辑

http://www.autoitx.com/forum.php ... hlight=%CD%B8%C3%F7
这个网站的例子非常经典,小弟想学习学习,遇到了一个函数,理解不了,求能理解的大大们帮帮小弟,万分感激!感激涕零!
Func _ImageDraw($State = "normal", $Case = ""); 利用为PNG图片
        Local $hGraphic1, $hBitmap, $hGraphic2
        Local $Image[13]

        ;默认设置
        For $i = 1 To 10
                $Image[$i] = $NormalImage
        Next
        $Image[11] = $NormalImage_Small
        $Image[12] = $NormalImage_Exit

        ;创建一个新的位图,这样,原来打开PNG是保持不变
        $hGraphic1 = _GDIPlus_GraphicsCreateFromHWND(_WinAPI_GetDesktopWindow())
        $hBitmap = _GDIPlus_BitmapCreateFromGraphics($Width, $Height, $hGraphic1)
        $hGraphic2 = _GDIPlus_ImageGetGraphicsContext($hBitmap)

        ; 绘制原 png 到我新创建的位图
        Switch $State
                Case "normal"
                Case "pressed"
                        Switch $Case
                                Case 1 To 10
                                        $Image[$Case] = $PressedImage
                                Case 11
                                        $Image[12] = $PressedImage_Exit
                        EndSwitch
                Case "over"
                        Switch $Case
                                Case 1 To 10
                                        $Image[$Case] = $OverImage
                                Case 11
                                        $Image[12] = $OverImage_Exit
                        EndSwitch
        EndSwitch

        For $i = 1 To 10
                _GDIPlus_GraphicsDrawImageRect($hGraphic2, $Image[$i], 0, ($i - 1) * 41, 167, 57)
        Next
        _GDIPlus_GraphicsDrawImageRect($hGraphic2, $Image[11], 3, 411, 111, 53)
        _GDIPlus_GraphicsDrawImageRect($hGraphic2, $Image[12], 107, 412, 57, 52)

        ;清理不再需要的资源
        _GDIPlus_GraphicsDispose($hGraphic2)
        _GDIPlus_GraphicsDispose($hGraphic1)

        ;返回新的位图
        Return $hBitmap
EndFunc   ;==>_ImageDraw
 楼主| 发表于 2010-8-23 11:57:44 | 显示全部楼层
对以上函数的调用方式如下:
;皮肤创作区
$Skin = _ImageDraw()
For $i = 1 To 11
        $Over[$i] = _ImageDraw("over", $i)
        $Pressed[$i] = _ImageDraw("pressed", $i)
Next
#EndRegion Image GUI
相信大家应该都知道的,毕竟这个文章很经典!
发表于 2010-8-23 12:52:32 | 显示全部楼层
对照帮助文档逐个理解是解决此类问题的最好途径,而且印象会很深
发表于 2010-8-23 13:33:50 | 显示全部楼层
楼上说的是。。。
发表于 2010-8-23 13:35:15 | 显示全部楼层
乍一看这贴的标题,我还以为是搞什么募捐的呢!“资助”
 楼主| 发表于 2010-8-23 13:42:32 | 显示全部楼层
回复 5# 水木子


    还以为你是回答问题的,你的话严重侮辱了我的帖子,别看你写着超级版主,我不怕。有种就把我的问题回答了,不要讲没用的废话,这里是技术论坛,不是撒野的地方。
发表于 2010-8-23 13:46:55 | 显示全部楼层
回复 6# yiruirui

你别激动,如果你觉得我的话侮辱了你,我立即向你道歉,你太多心了,我只是指出你标题中用词不当的地方。

别看我是超级版主,其实我就是个菜鸟混的,你的代码我基本看不懂,实在帮不上忙,只有学习的份儿。
发表于 2010-8-23 13:47:42 | 显示全部楼层
回复  水木子


    还以为你是回答问题的,你的话严重侮辱了我的帖子,别看你写着超级版主,我不怕。有 ...
yiruirui 发表于 2010-8-23 13:42



    木子斑竹只是指出了你标题的错误用词,何来撒野之说?

评分

参与人数 1金钱 +20 收起 理由
hzxymkb + 20 谢谢了!

查看全部评分

 楼主| 发表于 2010-8-23 13:49:23 | 显示全部楼层
回复 7# 水木子


    我的错,我激动了,我向你道歉!已经把标题改成了!3KS!
 楼主| 发表于 2010-8-23 13:50:05 | 显示全部楼层
回复 8# afan


    我多心了,谢谢A版提醒,已经觉悟,标题已经改正!3KS!
发表于 2010-8-23 13:55:31 | 显示全部楼层
回复 10# yiruirui

没事!修改了就好,不然容易误解的。

希望大家能和睦相处,在一个和谐的气氛下共同学习进步。

还有一事我想说明下,超级版主,听起来是挺牛逼的,不过这并不代表面面俱到,大家各有所长嘛!这也是论坛的特点,在一起互相学习,共同取长补短,这不是很好吗?你说是吧!

评分

参与人数 2金钱 +30 收起 理由
republican + 10 我也支持!
hzxymkb + 20 有道理!

查看全部评分

 楼主| 发表于 2010-8-23 13:57:39 | 显示全部楼层
回复 11# 水木子


    恩,明白的!完全同意!顶木版!

评分

参与人数 1金钱 +20 收起 理由
hzxymkb + 20 明说就好!下次发帖的时候注意一点哈!

查看全部评分

发表于 2010-8-23 14:26:51 | 显示全部楼层
来迟了!不好意思!看来误会已经解决了!
楼主下次发帖的时候注意一下就行了哈!
发表于 2010-8-23 15:02:40 | 显示全部楼层
如果你一点都不懂的话,这个例子并不适合你。里面的数组操作只会让人感到困惑。你搜搜PNG做按钮的例子(api及gdi),再加官网的PNG菜单,看上两天自然就明白的了。
发表于 2010-8-24 19:37:23 | 显示全部楼层
回复 1# yiruirui


  实在不好意思.....  没看明白你想要干什么.........




哈哈
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-16 20:45 , Processed in 0.121471 second(s), 29 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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