Что нового

[Элементы GUI] Масштаб картинки 1:1

rusreg79

Продвинутый
Сообщения
159
Репутация
57
Не могу разобраться как сделать, чтобы картинку большого разрешения, можно было просматривать в масштабе 1:1 в gui форме с помощью скролла, то есть не масштабируя саму гуи форму.

Код:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 450, 350)
$Pic1 = GUICtrlCreatePic(@ScriptDir&"\Pic.jpg", 50, 40, 350, 250, BitOR($GUI_SS_DEFAULT_PIC,$WS_HSCROLL,$WS_VSCROLL))
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

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

	EndSwitch
WEnd
 

axlwor

Скриптер
Сообщения
657
Репутация
147
1. Взял твой код
2. Посмотрел параметры картинки. Этот пункт нужно выяснить бы :smile: и переделал
Код:
$Pic1 = GUICtrlCreatePic(@ScriptDir&"\Pic.jpg", 50, 40, 50+$iWidthOfPict, 40+$iHeightOfPict , BitOR($GUI_SS_DEFAULT_PIC,$WS_HSCROLL,$WS_VSCROLL))

3. Взял пример из _GUIScrollBars_ScrollWindow и добавил функции на события
Код:
GUISwitch($Form1)
GUIRegisterMsg($WM_SIZE, "WM_SIZE")
GUIRegisterMsg($WM_VSCROLL, "WM_VSCROLL")
GUIRegisterMsg($WM_HSCROLL, "WM_HSCROLL")
GUISetState(@SW_SHOW)
_GUIScrollBars_Init($Form1)

и сами эти функции из примера

так что тебе осталось посчитать размеры картинки :D
ps.
Код:
#include <GDIPlus.au3>
 _GDIPlus_Startup()
$hI = _GDIPlus_ImageLoadFromFile(@ScriptDir&"\Pic.jpg")
$iWidthOfPict= _GDIPlus_ImageGetWidth($hI)
$iHeightOfPict = _GDIPlus_ImageGetHeight($hI)
_GDIPlus_ImageDispose($hI)
_GDIPlus_Shutdown()
 
Верх