Тема: AHK:экранная лупа - управление зумом
Доброго времени суток. Помогите добавить в скрипт управление зумом от минимума к максимуму на горячие клавиши.
^WheelUp:: уменьшить
^WheelDown:: увеличить
#NoEnv
SetBatchLines, -1
CoordMode, Pixel
DllCall("dwmapi\DwmEnableComposition", "UInt", False)
Gui, +AlwaysOnTop -Caption +E0x80000 +HwndGUIhWnd +Owner
Gui, Show, w150 h150, 10xZoom
WinMove, % "ahk_id"GUIhWnd,, A_ScreenWidth//2-76, A_ScreenHeight//2-76
hModule:=DllCall("LoadLibrary", "Str", "gdiplus.dll")
VarSetCapacity(GdiplusStartupInput, 16, 0)
NumPut(1, GdiplusStartupInput, 0, "Char")
DllCall("gdiplus\GdiplusStartup", "UInt*", pToken, "UInt", &GdiplusStartupInput)
VarSetCapacity(BITMAPINFO, 40, 0)
NumPut(40, BITMAPINFO, 0)
NumPut(150, BITMAPINFO, 4) ; biWidth
NumPut(150,BITMAPINFO, 8) ; biHeight
NumPut(1, BITMAPINFO, 12, "UShort")
NumPut(32, BITMAPINFO, 14, "UShort")
NumPut(0, BITMAPINFO, 16)
hBitmap:=DllCall("CreateDIBSection", "UInt", hDC
, "UInt", &BITMAPINFO
, "UInt", 0
, "UInt*", 0
, "UInt", 0
, "UInt", 0)
DllCall("ReleaseDC", "UInt", 0, "UInt", hDC)
hMemDC:=DllCall("CreateCompatibleDC", "UInt", 0)
DllCall("SelectObject", "UInt", hMemDC, "UInt", hBitmap)
DllCall("gdiplus\GdipCreateFromHDC", "UInt", hMemDC, "UInt*", pGraphics)
DllCall("gdiplus\GdipCreateSolidFill", "Int", Color1, "UInt*", pBrush)
SetTimer, UpdWindow, 50
OnExit, ExitScript
Return
UpdWindow:
Loop, 15
GdipDrawLine(A_Index-1)
DllCall("UpdateLayeredWindow", "UInt", GUIhWnd
, "UInt", 0
, "UInt", 0
, "Int64*", 0x09600000096 ; 150x150
, "UInt", hMemDC
, "Int64*", 0
, "UInt", 0
, "UInt*", 0x01FF0000
, "UInt", 2)
Return
ExitScript:
DllCall("gdiplus\GdiplusShutdown", "UInt", pToken)
DllCall("FreeLibrary", "UInt", hModule)
DllCall("dwmapi\DwmEnableComposition", "UInt", True)
ExitApp
GdipDrawLine(Y)
{
global
Loop, 15
{
PixelGetColor, CurrentColor, A_ScreenWidth//2-7+A_Index-1
, A_ScreenHeight//2-7+Y, RGB
DllCall("gdiplus\GdipSetSolidFillColor", "UInt", pBrush
, "UInt", CurrentColor|0xFF000000)
DllCall("gdiplus\GdipFillRectangle", "UInt", pGraphics
, "UInt", pBrush
, "Float", (A_Index-1)*10
, "Float", Y*10
, "Float", 10
, "Float", 10)
}
}Здесь http://forum.script-coding.com/viewtopic.php?id=6638 смотрел ,пытался разобраться не получилось, помогите пожалуйста .

