Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Yashied

Старожил


Сообщения: 206
Благодарности: 88

Профиль | Отправить PM | Цитировать


Можно так:

Код: Выделить весь код
#Include <StaticConstants.au3>
#Include <WinAPIEx.au3>
#Include <WindowsConstants.au3>

Global $Timer

Dim $aPoint[10][2] = [[0, 180], [190, 180], [250, 0], [308, 180], [500, 180], [344, 294], [404, 475], [250, 362], [94, 475], [154, 294]]

$hForm = GUICreate('MyGUI', 500, 475, -1, -1, $WS_POPUP, $WS_EX_TOPMOST)
$Label = GUICtrlCreateLabel('00:00:00', 180, 246, 140, 23, $SS_CENTER)
GUICtrlSetFont(-1, 20, 400, 0, 'Lucida Console')
GUICtrlSetColor(-1, 0xFFFF00)
$Button = GUICtrlCreateButton('Reset', 220, 290, 60, 21)
GUIRegisterMsg($WM_NCHITTEST, 'WM_NCHITTEST')
GUISetBkColor(0xAA0000)

$hRgn = _WinAPI_CreatePolygonRgn($aPoint)
_WinAPI_SetWindowRgn($hForm, $hRgn)

$Timer = TimerInit()
AdlibRegister('_Update', 1000)

GUISetState()

While 1
    $Msg = GUIGetMsg()
    Switch $Msg
        Case -3
            ExitLoop
        Case $Button
            $Timer = TimerInit()
            GUICtrlSetData($Label, '00:00:00')
    EndSwitch
WEnd

Func _Update()

    Local $H, $M, $S, $Time = Round(TimerDiff($Timer) / 1000)

    If $Time > 86400 Then ; > 24 hours
        $Time -= 86400
    EndIf
    $S = Mod($Time, 60)
    $Time = ($Time - $S) / 60
    $M = Mod($Time, 60)
    $Time = ($Time - $M) / 60
    $H = Mod($Time, 24)
    GUICtrlSetData($Label, StringFormat('%02d:%02d:%02d', $H, $M, $S))
EndFunc   ;==>_Update

Func WM_NCHITTEST($hWnd, $iMsg, $wParam, $lParam)
    Switch $hWnd
        Case $hForm
            Switch $iMsg
                Case $WM_NCHITTEST
                    Return $HTCAPTION
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NCHITTEST
WinAPIEx.au3

Отправлено: 20:50, 18-06-2010 | #2