📄 carousel.bas
字号:
zInstance(), _ ' program instance handle
BYVAL 0) ' creation parameters
' In case of image background stretch it to match the size of the graphic control
' or center it when smaller than the view port.
CALL ZI_SetProperty(gCtrl&, %ZI_FitToWindow, %ZI_QualityDefault)
' Resize the control to macth the whole size of the parent window
CALL zSetAnchorMode(gCtrl&, %ANCHOR_HEIGHT_WIDTH)
' ___________________
hBut = zFrameButton(hMain, (SK_FOLDER() + "Frame3D.png"), "", 619, 47, 158, 333, %ID_FRAMEBUTTON, 0)
CALL zSetAnchorMode(hBut, %ANCHOR_RIGHT)
CALL zSetZorder(hBut, %HWND_BOTTOM)
' ___________________
hBut = zStaticLabel(hMain, "Speed", 628, 55, 140, 15, %ID_LABEL_SPEED, SK_BTNTEXTCOLOR(), %BS_LABEL_LEFT)
CALL zSetZorder(hBut, %HWND_TOP)
CALL zSetAnchorMode(hBut, %ANCHOR_RIGHT)
hBut = zTrackbar(hMain, (SK_FOLDER() + "BTN_Thumb.png"), 628, 69, 140, 14, %ID_TRACK_SPEED, 1, 30, 4, SK_TRACKHICOLOR())
CALL zSetAnchorMode(hBut, %ANCHOR_RIGHT)
CALL zSetZorder(hBut, %HWND_TOP)
CALL zCreateToolTip(hBut, "Change the speed rotation")
hBut = zStaticLabel(hMain, "Focal length", 628, 87, 140, 15, %ID_LABEL_SPEED, SK_BTNTEXTCOLOR(), %BS_LABEL_LEFT)
CALL zSetZorder(hBut, %HWND_TOP)
CALL zSetAnchorMode(hBut, %ANCHOR_RIGHT)
hBut = zTrackbar(hMain, (SK_FOLDER() + "BTN_Thumb.png"), 628, 101, 140, 14, %ID_TRACK_FOCAL, 1, 30000, 15000, SK_TRACKHICOLOR())
CALL zSetAnchorMode(hBut, %ANCHOR_RIGHT)
CALL zSetZorder(hBut, %HWND_TOP)
CALL zCreateToolTip(hBut, "Adjust the focal length")
hBut = zCheckButton(hMain, (SK_FOLDER() + "BTN_Check.png"), "Marquee text", 627, 120, 110, 22, %ID_MARQUEE, SK_BTNTEXTCOLOR(), 0)
CALL zSetAnchorMode(hBut, %ANCHOR_RIGHT)
CALL zSetZorder(hBut, %HWND_TOP)
CALL zCreateToolTip(hBut, "Show/Hide the marquee text effect")
hBut = zCheckButton(hMain, (SK_FOLDER() + "BTN_Check.png"), "Variable opacity", 627, 141, 110, 22, %ID_OPACITY, SK_BTNTEXTCOLOR(), 0)
CALL zSetAnchorMode(hBut, %ANCHOR_RIGHT)
CALL zSetZorder(hBut, %HWND_TOP)
CALL zCreateToolTip(hBut, "Enable/disable variable opacity")
hBut = zCheckButton(hMain, (SK_FOLDER() + "BTN_Check.png"), "Wallpaper", 627, 162, 110, 22, %ID_BACKGROUND, SK_BTNTEXTCOLOR(), 0)
CALL zSetAnchorMode(hBut, %ANCHOR_RIGHT)
CALL zSetZorder(hBut, %HWND_TOP)
CALL zCreateToolTip(hBut, "Hide or show image background")
hBut = zCheckButton(hMain, (SK_FOLDER() + "BTN_Check.png"), "Use 3D depth", 627, 183, 110, 22, %ID_USE3D, SK_BTNTEXTCOLOR(), 0)
CALL zSetAnchorMode(hBut, %ANCHOR_RIGHT)
CALL zSetZorder(hBut, %HWND_TOP)
CALL zCreateToolTip(hBut, "Enable or disable the 3D depth")
hBut = zCheckButton(hMain, (SK_FOLDER() + "BTN_Check.png"), "Self rotation", 627, 204, 110, 22, %ID_SELFROTATION, SK_BTNTEXTCOLOR(), 0)
CALL zSetAnchorMode(hBut, %ANCHOR_RIGHT)
CALL zSetZorder(hBut, %HWND_TOP)
CALL zCreateToolTip(hBut, "Enable or disable self rotation")
hBut = zTrackbar(hMain, (SK_FOLDER() + "BTN_Thumb.png"), 755, 126, 16, 80, %ID_TRACK_Y, 100, -100, 50, SK_TRACKHICOLOR())
CALL zSetAnchorMode(hBut, %ANCHOR_RIGHT)
CALL zSetZorder(hBut, %HWND_TOP)
CALL zCreateToolTip(hBut, "Change location along Y axis")
hBut = zStaticLabel(hMain, "Y", 758, 208, 16, 15, %ID_LABEL_Y, SK_BTNTEXTCOLOR(), %BS_LABEL_LEFT)
CALL zSetZorder(hBut, %HWND_TOP)
CALL zSetAnchorMode(hBut, %ANCHOR_RIGHT)
hBut = zPushButton(hMain, (SK_FOLDER() + "BTN_Push.png"), "Reset", 626, 229, 144, 28, %ID_BTN_RESET, SK_BTNTEXTCOLOR(), -1, 0)
CALL zSetAnchorMode(hBut, %ANCHOR_RIGHT)
CALL zSetZorder(hBut, %HWND_TOP)
CALL zCreateToolTip(hBut, "Restaure to initial state")
' ___________________
IF Vista() THEN
hBut = zCheckButton(hMain, (SK_FOLDER() + "BTN_Check.png"), "AERO Crystal mode", 627, 271, 130, 22, %ID_AEROCRYSTAL, SK_BTNTEXTCOLOR(), 0)
CALL zSetAnchorMode(hBut, %ANCHOR_RIGHT)
CALL zSetZorder(hBut, %HWND_TOP)
CALL zCreateToolTip(hBut, "Switch Skin display to CRYSTAL mode")
hBut = zCheckButton(hMain, (SK_FOLDER() + "BTN_Check.png"), "AERO Blur mode", 627, 292, 130, 22, %ID_AEROBLUR, SK_BTNTEXTCOLOR(), 0)
CALL zSetAnchorMode(hBut, %ANCHOR_RIGHT)
CALL zSetZorder(hBut, %HWND_TOP)
CALL zCreateToolTip(hBut, "Switch Skin display to BLUR mode")
hBut = zCheckButton(hMain, (SK_FOLDER() + "BTN_Check.png"), "STANDARD mode", 627, 313, 130, 22, %ID_AERODISABLE, SK_BTNTEXTCOLOR(), 0)
CALL zSetCheckButtonStatus(hBut, %TRUE)
CALL zSetAnchorMode(hBut, %ANCHOR_RIGHT)
CALL zSetZorder(hBut, %HWND_TOP)
CALL zCreateToolTip(hBut, "Switch back to standard display mode")
hBut = zStaticLabel(hMain, "Client zone opacity", 628, 342, 140, 15, %ID_GLASS_OPACITY_LABEL, SK_BTNTEXTCOLOR(), %BS_LABEL_LEFT)
CALL zSetZorder(hBut, %HWND_TOP)
CALL zSetAnchorMode(hBut, %ANCHOR_RIGHT)
CALL zSplitColorARGB(SK_AEROCOLOR(), Alpha, Red, Green, Blue)
hBut = zTrackbar(hMain, (SK_FOLDER() + "BTN_Thumb.png"), 628, 357, 140, 14, %ID_TRACK_OPACITY, 0, 255, Alpha, SK_TRACKHICOLOR())
CALL zSetAnchorMode(hBut, %ANCHOR_RIGHT)
CALL zSetZorder(hBut, %HWND_TOP)
CALL zCreateToolTip(hBut, "To change client opacity (AERO must be On)")
END IF
hBut = zButImage(hMain, (SK_FOLDER() + "BTN_Pause.png"), 673, 403, %ID_BTN_PAUSE, 0)
CALL zGetImageSize(zGetButImageProperty(hBut), imgW, imgH): imgW = imgW \ 5
CALL ShowWindow(zGetMainItem(%ID_BTN_PAUSE), %SW_HIDE): CALL zSetZorder(zGetMainItem(%ID_BTN_PAUSE), %HWND_BOTTOM)
CALL zSetAnchorMode(hBut, %ANCHOR_BOTTOM_RIGHT)
CALL zSetZorder(hBut, %HWND_TOP)
CALL zCreateToolTip(hBut, "Pause carousel animation")
hBut = zButImage(hMain, (SK_FOLDER() + "BTN_Play.png"), 673, 403, %ID_BTN_PLAY, 0)
CALL zGetImageSize(zGetButImageProperty(hBut), imgW, imgH): imgW = imgW \ 5
CALL zSetAnchorMode(hBut, %ANCHOR_BOTTOM_RIGHT)
CALL zSetZorder(hBut, %HWND_TOP)
CALL zCreateToolTip(hBut, "Play carousel animation")
hBut = zButImage(hMain, (SK_FOLDER() + "BTN_Left.png"), 618, 415, %ID_LEFTBUTTON, 0)
CALL zGetImageSize(zGetButImageProperty(hBut), imgW, imgH): imgW = imgW \ 5
CALL zSetAnchorMode(hBut, %ANCHOR_BOTTOM_RIGHT)
CALL zSetZorder(hBut, %HWND_TOP)
CALL zCreateToolTip(hBut, "Play carousel in clock wise mode")
hBut = zButImage(hMain, (SK_FOLDER() + "BTN_Right.png"), 722, 415, %ID_RIGHTBUTTON, 0)
CALL zGetImageSize(zGetButImageProperty(hBut), imgW, imgH): imgW = imgW \ 5
CALL zSetAnchorMode(hBut, %ANCHOR_BOTTOM_RIGHT)
CALL zSetZorder(hBut, %HWND_TOP)
CALL zCreateToolTip(hBut, "Play carousel in counter clock mode")
' // Change default LED's anchor mode from top right to top center
CALL zSetAnchorMode(GetDlgItem(hMain, %ID_LED), %ANCHOR_RIGHT)
CALL zSetZorder(GetDlgItem(hMain, %ID_LED), %HWND_TOP)
' // Use the Skin's name for caption
CALL zSetCTLText(hMain, (PARSE$(SK_AUTHOR(), $zLim, 1)))
END SUB
'// Main window procedure
FUNCTION WndProc(BYVAL hWnd AS LONG, BYVAL Msg AS LONG, BYVAL wParam AS LONG, BYVAL lParam AS LONG) EXPORT AS LONG
LOCAL ps AS PAINTSTRUCT
LOCAL rc AS RECT
LOCAL nRet, wP, hDC, hDCmem AS LONG
LOCAL Alpha, Red, Green, Blue AS BYTE
STATIC IsMoving AS LONG
SELECT CASE LONG Msg
CASE %WM_GETMINMAXINFO
LOCAL pMM AS MINMAXINFO PTR
pMM = lParam
@pMM.ptMinTrackSize.x = zMinTrackSizeX(0)
@pMM.ptMinTrackSize.y = zMinTrackSizeY(0)
CASE %WM_COMMAND
IF zButtonSysCommand(hWnd, wParam) THEN FUNCTION = 0: EXIT FUNCTION
IF gBlinkCount THEN CALL ButtonBlink(%ID_BTN_Play, 1) '// Stop it
SELECT CASE LONG LO(INTEGER, wParam)
CASE %ID_BTN_PLAY
CALL PlayCarousel()
CASE %ID_BTN_PAUSE
CALL ShowWindow(zGetMainItem(%ID_BTN_PAUSE), %SW_HIDE): CALL zSetZorder(zGetMainItem(%ID_BTN_PAUSE), %HWND_BOTTOM)
CALL ShowWindow(zGetMainItem(%ID_BTN_PLAY), %SW_SHOW): CALL zSetZorder(zGetMainItem(%ID_BTN_PLAY), %HWND_TOP)
gAnimate = 0
CASE %ID_LEFTBUTTON
gMoveToLeft = -1
CALL PlayCarousel()
CASE %ID_RIGHTBUTTON
gMoveToLeft = 0
CALL PlayCarousel()
CASE %ID_BTN_RESET
' Setup Speed default
CALL zSetTrackValue(zGetMainItem(%ID_TRACK_SPEED), %Speed_default)
' Setup Focus default
CALL zSetTrackValue(zGetMainItem(%ID_TRACK_FOCAL), %Focus_default)
' Setup Y default
CALL zSetTrackValue(zGetMainItem(%ID_TRACK_Y), %Y_default)
CASE %ID_MARQUEE
IF zGetCheckButtonStatus(zGetMainItem(%ID_MARQUEE)) THEN
CALL ZD_ShowObject(%ID_OBJECT_TEXT, %ZD_SHOW)
ELSE
CALL ZD_ShowObject(%ID_OBJECT_TEXT, %ZD_HIDE)
END IF
CASE %ID_BACKGROUND
IF zGetCheckButtonStatus(zGetMainItem(%ID_BACKGROUND)) THEN
CALL ZI_SetFromFile(zGetMainItem(%ID_CTRL), zsExePath() + "back.jpg")
ELSE
CALL ZI_SetFromFile(zGetMainItem(%ID_CTRL), zsExePath() + "No_Picture.png")
END IF
CASE %ID_SELFROTATION
UseRotate& = zGetCheckButtonStatus(zGetMainItem(%ID_SELFROTATION))
'UseRotate& = SendMessage(GetDlgItem(hWnd, %ID_SELFROTATION), %BM_GETCHECK, 0, 0)
FOR K& = LBOUND(gSpriteData) TO UBOUND(gSpriteData)
IF UseRotate& = 0 THEN
gSpriteData(K&).hBitmap = ZI_CreateMirrorBitmapFromFile(gSpriteData(K&).ImageName, bmW&, bmH&)
ELSE
gSpriteData(K&).hBitmap = ZI_CreateBitmapFromFile(gSpriteData(K&).ImageName, bmW&, bmH&)
END IF
CALL ZD_DrawBitmapToCtrl(zGetMainItem(%ID_CTRL), gSpriteData(K&).xPos, gSpriteData(K&).yPos, _
gSpriteData(K&).hBitmap, &HFFFFFFFF, gSpriteData(K&).ID, %ZS_VISIBLE)
NEXT
CASE %ID_AEROCRYSTAL
IF zGetCheckButtonStatus(zGetMainItem(%ID_AEROCRYSTAL)) THEN
CALL zSplitColorARGB(SK_AEROCOLOR(), Alpha, Red, Green, Blue)
CALL zAEROCOLOR(zColorARGB(zGetTrackValue(zGetMainItem(%ID_TRACK_OPACITY)), RGB(Red, Green, Blue)), %WRITE)
CALL zSetCheckButtonStatus(zGetMainItem(%ID_AERODISABLE), %FALSE)
CALL zSetCheckButtonStatus(zGetMainItem(%ID_AEROBLUR), %FALSE)
CALL zAEROEMULATE(%TRUE, %WRITE)
CALL zAEROBLURLEVEL(0, %WRITE)
CALL SetTimer(hWnd, %AERO_TIMER, SK_AEROTIMERDELAY(), %NULL)
CALL zUSEVISTABLUR(%FALSE, %WRITE)
CALL zUSEVISTACRYSTAL(%TRUE, %WRITE)
'//CALL zTEXTRENDERING(%TextRenderingHintAntiAlias, 1)
ELSE
'//CALL zTEXTRENDERING(%TextRenderingDefault, 1)
CALL KillTimer(hWnd, %AERO_TIMER)
CALL zAEROEMULATE(%FALSE, %WRITE)
CALL zSetCheckButtonStatus(zGetMainItem(%ID_AERODISABLE), %TRUE)
CALL zUSEVISTABLUR(%FALSE, %WRITE)
CALL zUSEVISTACRYSTAL(%FALSE, %WRITE)
END IF
CALL GetWindowRect(hWnd, rc)
CALL zMoveBackground(rc.nLeft, rc.nTop)
CALL zUpdateWindow(hWnd, 0)
CASE %ID_AEROBLUR
IF zGetCheckButtonStatus(zGetMainItem(%ID_AEROBLUR)) THEN
CALL zSplitColorARGB(SK_AEROCOLOR(), Alpha, Red, Green, Blue)
CALL zAEROCOLOR(zColorARGB(zGetTrackValue(zGetMainItem(%ID_TRACK_OPACITY)), RGB(Red, Green, Blue)), %WRITE)
CALL zSetCheckButtonStatus(zGetMainItem(%ID_AERODISABLE), %FALSE)
CALL zSetCheckButtonStatus(zGetMainItem(%ID_AEROCRYSTAL), %FALSE)
CALL zAEROEMULATE(%TRUE, %WRITE)
CALL zAEROBLURLEVEL(6, %WRITE)
CALL SetTimer(hWnd, %AERO_TIMER, SK_AEROTIMERDELAY(), %NULL)
CALL zUSEVISTACRYSTAL(%FALSE, %WRITE)
CALL zUSEVISTABLUR(%TRUE, %WRITE)
'//CALL zTEXTRENDERING(%TextRenderingHintAntiAlias, 1)
ELSE
'//CALL zTEXTRENDERING(%TextRenderingDefault, 1)
CALL KillTimer(hWnd, %AERO_TIMER)
CALL zAEROEMULATE(%FALSE, %WRITE)
CALL zSetCheckButtonStatus(zGetMainItem(%ID_AERODISABLE), %TRUE)
CALL zUSEVISTABLUR(%FALSE, %WRITE)
CALL zUSEVISTACRYSTAL(%FALSE, %WRITE)
END IF
CALL GetWindowRect(hWnd, rc)
CALL zMoveBackground(rc.nLeft, rc.nTop)
CALL zUpdateWindow(hWnd, 0)
CASE %ID_AERODISABLE
IF zGetCheckButtonStatus(zGetMainItem(%ID_AERODISABLE)) THEN
CALL zSetCheckButtonStatus(zGetMainItem(%ID_AEROBLUR), %FALSE)
CALL zSetCheckButtonStatus(zGetMainItem(%ID_AEROCRYSTAL), %FALSE)
CALL zAEROEMULATE(%FALSE, %WRITE)
'//CALL zTEXTRENDERING(%TextRenderingDefault, 1)
CALL KillTimer(hWnd, %AERO_TIMER)
CALL zUSEVISTABLUR(%FALSE, %WRITE)
CALL zUSEVISTACRYSTAL(%FALSE, %WRITE)
CALL GetWindowRect(hWnd, rc)
CALL zMoveBackground(rc.nLeft, rc.nTop)
CALL zUpdateWindow(hWnd, 0)
ELSE
CALL zSetCheckButtonStatus(zGetMainItem(%ID_AERODISABLE), %TRUE)
END IF
CASE %ID_TRACK_OPACITY
IF SK_AEROEMULATE() THEN
CALL zSplitColorARGB(SK_AEROCOLOR(), Alpha, Red, Green, Blue)
CALL zAEROCOLOR(zColorARGB(lParam, RGB(Red, Green, Blue)), %WRITE)
CALL GetWindowRect(hWnd, rc)
CALL zMoveBackground(rc.nLeft, rc.nTop)
CALL zUpdateWindow(hWnd, 0)
END IF
END SELECT
CASE %WM_SIZE
IF zComposited() THEN lRes& = zBeginDeferWindowPos(hWnd, 0)
CALL zDrawBackground()
CALL EnumChildWindows(hWnd, CODEPTR(AnchorEnum), lRes&)
'CALL zUpdateWindow(hWnd, 0)
IF zComposited() THEN CALL zEndDeferWindowPos(hWnd, lRes&)
CASE %WM_SETTEXT
' // Windows please do your job first.
FUNCTION = DefWindowProc(hWnd, Msg, wParam, lParam)
' // Update caption
CALL zPaintBackground()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -