lxh495349465 发表于 2010-3-27 17:32:54

关于图片控件的一个问题


我想做一个图片窗口,需要这个窗口中的图片能够跟着
窗口的大小而改变大小.请高手指点。谢谢

nmgwddj 发表于 2010-3-27 18:15:30

我也琢磨这个问题呢。应该先获取窗口坐标。,然后图片用获取到的坐标修改 图片的坐标应该是个变量

masterpcc 发表于 2010-3-27 18:17:51

新手!期待中顶一个!!

pusofalse 发表于 2010-3-27 18:49:28

放在一个循环中,实时检测窗口的大小。
或者,注册WM_SIZE消息,当窗口大小发生改变时,截取此消息,$lParam的高位为窗口的宽度,低位设为高度。

nmgwddj 发表于 2010-3-27 19:40:08

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("窗体1", 410, 200, 300, 240, BitOR($WS_MAXIMIZEBOX, $WS_MINIMIZEBOX, $WS_SYSMENU, $WS_GROUP, $WS_TABSTOP))
$i = WinGetClientSize($Form1)
$Pic1 = GUICtrlCreatePic("g:\oem.jpg", 20, 20, $i - 40, 100)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit
                        ;Case $GUI_EVENT_MINIMIZE;最小化窗口按钮
                Case $GUI_EVENT_RESTORE;还原窗口按钮
                        $i = WinGetClientSize($Form1)
                        GUICtrlSetPos($Pic1, 20, 20, $i - 40, 100)
                Case $GUI_EVENT_MAXIMIZE;最大化窗口按钮
                        $i = WinGetClientSize($Form1)
                        GUICtrlSetPos($Pic1, 20, 20, $i - 40, 100)
        EndSwitch
WEnd我只能帮你这样做了。也许P版有更好的办法

afan 发表于 2010-3-27 20:10:07

不知道LZ的具体应用,简单的用 GUICtrlSetResizing ( 控件ID, $GUI_DOCKAUTO) 就行了
;#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

GUICreate("窗体", 400, 300, -1, -1, $WS_MAXIMIZEBOX + $WS_MINIMIZEBOX + $WS_SIZEBOX)
$Picp = RegRead('HKLM\SOFTWARE\AutoIt v3\AutoIt', 'InstallDir') & '\Examples\GUI\msoobe.jpg'
GUICtrlCreatePic($Picp, 0, 0, 400, 300)
GUICtrlSetResizing(-1, $GUI_DOCKAUTO)
GUISetState()

While 1
      $nMsg = GUIGetMsg()
      Switch $nMsg
                Case -3
                        Exit

      EndSwitch
WEnd

viplight 发表于 2010-3-28 09:39:38

留到说不定那天用得到
:face (14):

lxh495349465 发表于 2010-3-29 12:40:34

回复 6# afan


    谢谢afan版主和各位高手的指点。测试成功
页: [1]
查看完整版本: 关于图片控件的一个问题