anchie 发表于 2010-7-4 19:50:27

GUICtrlCreatePic控件中的图片如何居中显示[已解决]

本帖最后由 anchie 于 2010-8-8 15:06 编辑

最近在些一个系统设置工具
遇到了一点麻烦
就是GUICtrlCreatePic控件中的图片如何居中显示
请教高手解决!

anchie 发表于 2010-7-4 19:53:14

补充一下 ,图片是随机显示的 有的图片大 有的图片小,就是想让图片在无论大小的情况下 不改变图片的大小而可以达到居中的效果
意思就是说即使图片比GUICtrlCreatePic小的话 也可以居中显示。

anchie 发表于 2010-7-4 23:23:05

郁闷 没有人给我解答这个问题吗?

afan 发表于 2010-7-4 23:29:48

本帖最后由 afan 于 2010-7-4 23:32 编辑

...不改变图片的大小而可以达到居中的效果 ...
anchie 发表于 2010-7-4 19:53 http://www.autoitx.com/images/common/back.gif


    不改变图片的大小 -- 这个够呛,如果图片超出显示器,那Gui就找不着北了...

不改变宽高比还差不多,对图片进行缩放(或仅缩小大图片),以填满整个图片控件

anchie 发表于 2010-7-5 12:33:19

这样不行 填充整个图片控件 那也不用发帖上来问了

anchie 发表于 2010-7-5 12:35:33

回复 4# afan


    能不能这样 如果图片比控件大的话 那就填充跟控件一样大小如果图片比控件小 那就居控件中间显示。

afan 发表于 2010-7-5 12:37:05

那不就是我4#的意思…(或仅缩小大图片)

hzxymkb 发表于 2010-7-5 13:10:55

有afan在!什么问题都能解决的!{:face (411):}

anchie 发表于 2010-7-5 13:18:15

回复 7# afan


    关键是 如何让图片比控件小的图片居中,afan大哥请帮一下。

afan 发表于 2010-7-5 13:20:43

回复 8# hzxymkb


    嘘,当心别人笑掉大牙~ 我最大的能耐就是和广告贴做持久战~! 别的,别和我比菜~~~

afan 发表于 2010-7-5 13:22:57

回复afan


    关键是 如何让图片比控件小的图片居中,afan大哥请帮一下。
anchie 发表于 2010-7-5 13:18 http://www.autoitx.com/images/common/back.gif

获取图片尺寸,计算并调整图片控件尺寸及坐标,大概这样就OK了

hzxymkb 发表于 2010-7-5 13:23:54

回复 10# afan
高手都是谦虚的!{:face (411):}
我专门查水,发现afan真是高人!
能不能收我 为徒呀?

xsjtxy 发表于 2010-7-5 13:41:23

;;不知道Lz是不是这个意思

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate("Form1", 640, 480, -1, -1,$WS_SIZEBOX+$WS_MINIMIZEBOX+$WS_MAXIMIZEBOX)
GUISetState(@SW_SHOW)

GUICtrlCreatePic("setup.jpg",-1,-1,639,460)
GUICtrlSetResizing(-1, 128)

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

        EndSwitch
WEnd

t87564833 发表于 2010-7-5 14:57:19

回复 12# hzxymkb


    我才来这坛1个月左右,afan给我印象最深,我也想拜师!{:face (411):}

3mile 发表于 2010-7-5 16:37:46

最近理解能力出了点问题。可能理解错了楼主的意思了。
看看这个代码可以吗?#include <array.au3>
#include <file.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Local $f, $shell, $s, $i
Local $path = @MyDocumentsDir & "\My Pictures\"
Local $xfile = _FileListToArray($path, "*.jpg")
Local $file, $size

$Form1 = GUICreate("Form1", 639, 460, -1, -1, $WS_SIZEBOX + $WS_MINIMIZEBOX + $WS_MAXIMIZEBOX)
$jpg = GUICtrlCreatePic("", -1, -1, 639, 460)
GUISetState()

For $i = 1 To UBound($xfile) - 1
        $file = $path & $xfile[$i]
        getWH()
        $size = StringSplit($s, "x")
        $Width = $size
        $Height = StringStripWS($size, 1)
        GUICtrlSetImage($jpg, $file)
        If $Width > 639 Then
                GUICtrlSetPos($jpg, 639 - $Width, -1, $Width, $Height)
                If $Height > 460 Then GUICtrlSetPos($jpg, -1, 460 - $Height, $Width, $Height)
        Else
                GUICtrlSetPos($jpg, (639 - $Width) / 2, 0, $Width, $Height)
                If $Height > 460 Then GUICtrlSetPos($jpg, 0, 460 - $Height, $Width, $Height)
        EndIf
        Sleep(2000)
Next


While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

        EndSwitch
WEnd

Func getWH()
        $o = ObjCreate("scripting.filesystemobject")
        $f = $o.GetFile($file)
        $shell1 = ObjCreate("Shell.Application")
        $shell = $shell1.Namespace($f.ParentFolder.Path)
        $s = $shell.GetDetailsOf($shell.Items.Item($f.Name), 26)
EndFunc   ;==>getWH
页: [1] 2 3 4
查看完整版本: GUICtrlCreatePic控件中的图片如何居中显示[已解决]