Accueil > > > HORLOGES DIVERSES
HORLOGES DIVERSES
Information sur la source
Description
Différentes façons d'afficher l'heure et la date en utilisant les procédures graphiques disponibles en assembleur.
Source
- .586
- .model flat,stdcall
- option casemap:none
-
- include \masm32\include\windows.inc
- include \masm32\include\masm32.inc
- include \masm32\include\user32.inc
- include \masm32\include\kernel32.inc
- include \masm32\include\gdi32.inc
-
- includelib \masm32\lib\masm32.lib
- includelib \masm32\lib\user32.lib
- includelib \masm32\lib\kernel32.lib
- includelib \masm32\lib\gdi32.lib
-
- DlgProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
-
-
- ;**********************************
- ; MACROS
- ;**********************************
- RGB MACRO red, green, blue
- xor eax, eax
- mov al, blue ; blue
- rol eax, 8
- mov al, green ; green
- rol eax, 8
- mov al, red ; red
- ENDM
- ; ---------------------
- literal MACRO quoted_text:VARARG
- LOCAL local_text
- .data
- local_text db quoted_text,0
- .code
- EXITM <local_text>
- ENDM
- ; --------------------------------
- ; string address in INVOKE format
- ; --------------------------------
- SADD MACRO quoted_text:VARARG
- EXITM <ADDR literalquoted_text)>
- ENDM
- ; --------------------------------
- m2m MACRO M1, M2
- push M2
- pop M1
- ENDM
- ;*********************************
-
- .const
-
-
- .data
- DlgName db "MonDialog",0
-
- xTab0 POINT {100,100},{104,55},{100,40},{95,55},{100,100},{109,56},{106,40},{100,55},{100,100},{114,57},{113,41},{104,55},{100,100},{118,59},{119,43},{109,56}
- POINT {100,100},{123,62},{125,45},{114,57},{100,100},{126,64},{130,47},{118,59},{100,100},{130,67},{135,51},{123,62},{100,100},{133,70},{140,55},{126,64}
- POINT {100,100},{136,74},{144,59},{130,67},{100,100},{138,78},{149,65},{133,70},{100,100},{141,82},{153,69},{136,74},{100,100},{142,87},{155,75},{138,78}
- POINT {100,100},{143,92},{157,81},{141,82},{100,100},{144,96},{159,88},{142,87},{100,100},{145,100},{160,94},{143,92},{100,100},{144,105},{160,100},{144,96}
- POINT {100,100},{143,110},{160,107},{145,100},{100,100},{142,114},{158,113},{144,105},{100,100},{140,118},{157,119},{143,110},{100,100},{139,122},{155,125},{142,114}
- POINT {100,100},{136,126},{153,131},{140,118},{100,100},{133,130},{148,136},{139,122},{100,100},{129,133},{144,141},{136,126},{100,100},{126,136},{139,145},{133,130}
- POINT {100,100},{122,139},{135,150},{129,133},{100,100},{118,141},{131,153},{126,136},{100,100},{113,142},{125,155},{122,139},{100,100},{109,143},{119,157},{118,141}
- POINT {100,100},{104,144},{113,159},{113,142},{100,100},{100,144},{107,160},{109,143},{100,100},{95,144},{100,161},{104,144},{100,100},{91,144},{94,160},{100,144}
- POINT {100,100},{86,142},{87,159},{95,144},{100,100},{82,141},{81,157},{91,144},{100,100},{78,139},{76,155},{86,142},{100,100},{73,136},{69,152},{82,141}
- POINT {100,100},{70,133},{65,149},{78,139},{100,100},{67,130},{60,146},{73,136},{100,100},{64,127},{55,141},{70,133},{100,100},{61,122},{52,136},{67,130}
- POINT {100,100},{59,118},{48,131},{64,127},{100,100},{57,114},{45,125},{61,122},{100,100},{56,110},{43,119},{59,118},{100,100},{55,105},{42,113},{57,114}
- POINT {100,100},{55,100},{40,106},{56,110},{100,100},{55,95},{39,100},{55,105},{100,100},{56,91},{40,93},{55,100},{100,100},{57,86},{41,87},{55,95}
- POINT {100,100},{58,82},{42,81},{56,91},{100,100},{60,77},{45,75},{57,86},{100,100},{64,74},{46,68},{58,82},{100,100},{66,70},{51,64},{60,77}
- POINT {100,100},{70,67},{55,59},{64,74},{100,100},{73,63},{60,54},{66,70},{100,100},{77,61},{65,51},{70,67},{100,100},{81,59},{70,46},{73,63}
- POINT {100,100},{86,57},{75,45},{77,61},{100,100},{91,56},{81,43},{81,59},{100,100},{95,55},{87,41},{86,57},{100,100},{100,55},{94,40},{91,56}
-
- xTab1 POINT {100,100},{95,89},{100,56},{105,89},{100,100},{97,88},{104,55},{106,89},{100,100},{98,88},{110,55},{107,89},{100,100},{100,87},{114,57},{108,90}
- POINT {100,100},{101,86},{118,59},{110,90},{100,100},{103,87},{122,61},{111,92},{100,100},{103,88},{126,64},{110,93},{100,100},{104,89},{130,67},{112,95}
- POINT {100,100},{106,89},{133,70},{113,95},{100,100},{107,90},{136,74},{112,97},{100,100},{108,90},{139,78},{113,98},{100,100},{110,91},{141,82},{113,99}
- POINT {100,100},{110,93},{143,87},{113,100},{100,100},{111,93},{144,92},{113,102},{100,100},{111,94},{145,96},{112,103},{100,100},{112,96},{145,100},{112,105}
- POINT {100,100},{113,97},{145,105},{112,107},{100,100},{114,98},{144,110},{111,108},{100,100},{113,99},{142,114},{110,108},{100,100},{112,101},{141,118},{108,109}
- POINT {100,100},{113,102},{139,122},{108,111},{100,100},{112,104},{136,126},{107,112},{100,100},{112,104},{133,130},{105,111},{100,100},{112,106},{130,133},{105,112}
- POINT {100,100},{110,106},{126,136},{103,112},{100,100},{110,108},{122,139},{102,113},{100,100},{108,109},{118,141},{100,113},{100,100},{108,110},{114,142},{99,113}
- POINT {100,100},{106,110},{109,144},{97,112},{100,100},{105,112},{104,144},{96,112},{100,100},{104,112},{100,144},{95,112},{100,100},{103,113},{95,144},{94,112}
- POINT {100,100},{102,113},{90,144},{93,111},{100,100},{100,112},{86,142},{92,110},{100,100},{99,113},{81,141},{91,109},{100,100},{98,112},{77,139},{90,108}
- POINT {100,100},{97,112},{73,136},{89,107},{100,100},{95,112},{70,134},{88,106},{100,100},{94,111},{67,130},{88,104},{100,100},{93,110},{64,126},{88,103}
- POINT {100,100},{92,110},{61,122},{87,102},{100,100},{91,109},{59,118},{87,101},{100,100},{90,108},{57,114},{87,99},{100,100},{89,107},{56,110},{87,98}
- POINT {100,100},{88,106},{55,105},{87,97},{100,100},{88,105},{55,100},{88,95},{100,100},{87,104},{55,95},{88,94},{100,100},{87,102},{56,91},{89,93}
- POINT {100,100},{87,101},{57,87},{90,92},{100,100},{86,100},{58,82},{90,91},{100,100},{87,98},{60,77},{92,90},{100,100},{86,96},{63,74},{92,88}
- POINT {100,100},{87,95},{66,70},{93,87},{100,100},{88,93},{70,67},{95,87},{100,100},{89,93},{73,63},{96,86},{100,100},{89,91},{77,61},{98,86}
- POINT {100,100},{91,90},{81,59},{100,86},{100,100},{92,89},{86,57},{101,86},{100,100},{93,88},{90,56},{102,86},{100,100},{94,89},{95,55},{103,87}
-
-
- xTab db 100,106,113,119,125,131,136,141,145,150,154,156,158,160,161,161,161,159,158,156,154,149,145,140
- db 136,131,125,119,113,107,100,94,87,81,76,69,64,59,54,51,47,44,42,41,39,38,39,40,41,44,45,50,54,59
- db 64,69,75,81,87,94
-
- yTab db 39,39,40,42,44,47,51,55,59,65,69,75,81,88,94,100,107,113,119,125,131,136,141,145,150,154,156,158
- db 160,161,162,161,160,158,156,153,149,146,141,136,131,125,119,113,106,100,93,87,81,75,68,64,59,54
- db 51,46,44,42,40,39,39
-
- Tab1 dd (4)
-
- Cpt db (32)
- Cpt1 db (160)
- Xs dd (100)
- Ys dd (100)
- forme db "HH:mm:ss",0
- buffer db 20 dup (0)
- format db "dddd dd MMMM yyyy",0
- buff db 27 dup (0)
- TxtStatic db "STATIC",0
-
- .data?
- hInstance dd ?
- hdc dd ?
- hBrush dd ?
- hPen dd ?
- hX dd ?
- hY dd ?
- Xm dd ?
- Ym dd ?
- Syst SYSTEMTIME <?>
- .data
- Ps PAINTSTRUCT <>
-
- .code
- start:
- invoke GetModuleHandle, NULL
- mov hInstance,eax
- encore:
- invoke DialogBoxParam, 0, ADDR DlgName,NULL,addr DlgProc,NULL
- fin:
- invoke ExitProcess,eax
-
- ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
-
-
- DlgProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
- ;LOCAL xTab[3] :BYTE
-
- .IF uMsg == WM_CLOSE
- invoke EndDialog,hWnd,NULL
-
-
- .ELSEIF uMsg == WM_INITDIALOG
- invoke SetTimer,hWnd,15,1000,NULL
- invoke GetDateFormat,0,0,0,addr format,addr buff,27
- invoke CreateWindowEx,WS_EX_CLIENTEDGE,addr TxtStatic,addr buff,
- SS_CENTER or WS_BORDER or WS_VISIBLE or WS_CHILD,14,262,174,27,hWnd,300,
- hInstance,0
-
- .ELSEIF uMsg==WM_PAINT
- invoke BeginPaint,hWnd,addr Ps
- mov hdc,eax
- invoke Arc,hdc,15,15,185,185,100,185,100,185
- invoke Ellipse,hdc,16,16,184,184
- ;****************************************
- ;* dessin des chiffres
- ;****************************************
- ; I
- ;****************************************
- invoke MoveToEx,hdc,138,36,0
- invoke LineTo,hdc,138,45
- invoke MoveToEx,hdc,139,36,0
- invoke LineTo,hdc,139,45
- ;****************************************
- ; II
- ;****************************************
- invoke MoveToEx,hdc,160,61,0
- invoke LineTo,hdc,160,70
- invoke MoveToEx,hdc,161,61,0
- invoke LineTo,hdc,161,70
- invoke MoveToEx,hdc,163,61,0
- invoke LineTo,hdc,163,70
- invoke MoveToEx,hdc,164,61,0
- invoke LineTo,hdc,164,70
- ;****************************************
- ; III
- ;****************************************
- invoke MoveToEx,hdc,167,96,0
- invoke LineTo,hdc,167,105
- invoke MoveToEx,hdc,168,96,0
- invoke LineTo,hdc,168,105
- invoke MoveToEx,hdc,170,96,0
- invoke LineTo,hdc,170,105
- invoke MoveToEx,hdc,171,96,0
- invoke LineTo,hdc,171,105
- invoke MoveToEx,hdc,173,96,0
- invoke LineTo,hdc,173,105
- invoke MoveToEx,hdc,174,96,0
- invoke LineTo,hdc,174,105
- ;****************************************
- ; IV
- ;****************************************
- invoke MoveToEx,hdc,162,126,0
- invoke LineTo,hdc,162,135
- invoke MoveToEx,hdc,163,126,0
- invoke LineTo,hdc,163,135
- invoke MoveToEx,hdc,165,126,0
- invoke LineTo,hdc,168,135
- invoke MoveToEx,hdc,166,126,0
- invoke LineTo,hdc,169,135
- invoke MoveToEx,hdc,171,126,0
- invoke LineTo,hdc,168,135
- invoke MoveToEx,hdc,172,126,0
- invoke LineTo,hdc,169,135
- ;****************************************
- ; V
- ;****************************************
- invoke MoveToEx,hdc,135,154,0
- invoke LineTo,hdc,138,163
- invoke MoveToEx,hdc,136,154,0
- invoke LineTo,hdc,139,163
- invoke MoveToEx,hdc,141,154,0
- invoke LineTo,hdc,138,163
- invoke MoveToEx,hdc,142,154,0
- invoke LineTo,hdc,139,163
- ;****************************************
- ; VI
- ;****************************************
- invoke MoveToEx,hdc,95,166,0
- invoke LineTo,hdc,98,175
- invoke MoveToEx,hdc,96,166,0
- invoke LineTo,hdc,99,175
- invoke MoveToEx,hdc,101,166,0
- invoke LineTo,hdc,98,175
- invoke MoveToEx,hdc,102,166,0
- invoke LineTo,hdc,99,175
- invoke MoveToEx,hdc,104,166,0
- invoke LineTo,hdc,104,175
- invoke MoveToEx,hdc,105,166,0
- invoke LineTo,hdc,105,175
- ;****************************************
- ; VII
- ;****************************************
- invoke MoveToEx,hdc,60,158,0
- invoke LineTo,hdc,63,167
- invoke MoveToEx,hdc,61,158,0
- invoke LineTo,hdc,64,167
- invoke MoveToEx,hdc,66,158,0
- invoke LineTo,hdc,63,167
- invoke MoveToEx,hdc,67,158,0
- invoke LineTo,hdc,64,167
- invoke MoveToEx,hdc,69,158,0
- invoke LineTo,hdc,69,167
- invoke MoveToEx,hdc,70,158,0
- invoke LineTo,hdc,70,167
- invoke MoveToEx,hdc,72,158,0
- invoke LineTo,hdc,72,167
- invoke MoveToEx,hdc,73,158,0
- invoke LineTo,hdc,73,167
- ;****************************************
- ; VIII
- ;****************************************
- invoke MoveToEx,hdc,28,130,0
- invoke LineTo,hdc,31,139
- invoke MoveToEx,hdc,29,130,0
- invoke LineTo,hdc,32,139
- invoke MoveToEx,hdc,34,130,0
- invoke LineTo,hdc,31,139
- invoke MoveToEx,hdc,35,130,0
- invoke LineTo,hdc,32,139
- invoke MoveToEx,hdc,37,130,0
- invoke LineTo,hdc,37,139
- invoke MoveToEx,hdc,38,130,0
- invoke LineTo,hdc,38,139
- invoke MoveToEx,hdc,39,130,0
- invoke LineTo,hdc,39,139
- invoke MoveToEx,hdc,40,130,0
- invoke LineTo,hdc,40,139
- invoke MoveToEx,hdc,41,130,0
- invoke LineTo,hdc,41,139
- invoke MoveToEx,hdc,42,130,0
- invoke LineTo,hdc,42,139
- ;****************************************
- ; IX
- ;****************************************
- invoke MoveToEx,hdc,23,96,0
- invoke LineTo,hdc,23,105
- invoke MoveToEx,hdc,24,96,0
- invoke LineTo,hdc,24,105
- invoke MoveToEx,hdc,26,96,0
- invoke LineTo,hdc,32,105
- invoke MoveToEx,hdc,27,96,0
- invoke LineTo,hdc,33,105
- invoke MoveToEx,hdc,32,96,0
- invoke LineTo,hdc,26,105
- invoke MoveToEx,hdc,33,96,0
- invoke LineTo,hdc,27,105
- ;****************************************
- ; X
- ;****************************************
- invoke MoveToEx,hdc,31,63,0
- invoke LineTo,hdc,38,73
- invoke MoveToEx,hdc,32,63,0
- invoke LineTo,hdc,39,73
- invoke MoveToEx,hdc,37,63,0
- invoke LineTo,hdc,29,73
- invoke MoveToEx,hdc,38,63,0
- invoke LineTo,hdc,30,73
- ;****************************************
- ; XI
- ;****************************************
- invoke MoveToEx,hdc,53,38,0
- invoke LineTo,hdc,57,45
- invoke MoveToEx,hdc,54,38,0
- invoke LineTo,hdc,58,48
- invoke MoveToEx,hdc,57,38,0
- invoke LineTo,hdc,53,48
- invoke MoveToEx,hdc,58,38,0
- invoke LineTo,hdc,54,48
- invoke MoveToEx,hdc,60,38,0
- invoke LineTo,hdc,60,48
- invoke MoveToEx,hdc,61,38,0
- invoke LineTo,hdc,61,48
- ;****************************************
- ; XII
- ;****************************************
- invoke MoveToEx,hdc,90,24,0
- invoke LineTo,hdc,95,34
- invoke MoveToEx,hdc,91,24,0
- invoke LineTo,hdc,96,34
- invoke MoveToEx,hdc,95,24,0
- invoke LineTo,hdc,90,34
- invoke MoveToEx,hdc,96,24,0
- invoke LineTo,hdc,91,34
- invoke MoveToEx,hdc,99,24,0
- invoke LineTo,hdc,99,34
- invoke MoveToEx,hdc,100,24,0
- invoke LineTo,hdc,100,34
- invoke MoveToEx,hdc,103,24,0
- invoke LineTo,hdc,103,34
- invoke MoveToEx,hdc,104,24,0
- invoke LineTo,hdc,104,34
- ;****************************************
- ; Marquage des heures sur la périphérie
- ;****************************************
- Invoke MoveToEx,hdc,100,35,0
- Invoke LineTo,hdc,100,40
- Invoke MoveToEx,hdc,133,44,0
- Invoke LineTo,hdc,130,48
- Invoke MoveToEx,hdc,156,69,0
- Invoke LineTo,hdc,151,71
- Invoke MoveToEx,hdc,165,100,0
- Invoke LineTo,hdc,160,100
- Invoke MoveToEx,hdc,156,132,0
- Invoke LineTo,hdc,151,129
- Invoke MoveToEx,hdc,132,156,0
- Invoke LineTo,hdc,130,152
- Invoke MoveToEx,hdc,100,165,0
- Invoke LineTo,hdc,100,160
- Invoke MoveToEx,hdc,67,156,0
- Invoke LineTo,hdc,70,152
- Invoke MoveToEx,hdc,44,133,0
- Invoke LineTo,hdc,48,130
- Invoke MoveToEx,hdc,35,100,0
- Invoke LineTo,hdc,40,100
- Invoke MoveToEx,hdc,43,67,0
- Invoke LineTo,hdc,48,70
- Invoke MoveToEx,hdc,67,44,0
- Invoke LineTo,hdc,70,47
- call Minutes
- invoke GetLocalTime,addr Syst
- call FaitSecondes
- call FaitMinutes
- call FaitHeures
- ;***********************************************
- ; Pas de EndPaint,sinon le mouvement est stoppé
- ;***********************************************
-
- .ELSEIF uMsg==WM_CTLCOLORSTATIC
-
-
- .ELSEIF uMsg == WM_COMMAND
- mov eax,wParam
-
-
- .ELSEIF uMsg == WM_TIMER
- invoke GetLocalTime,addr Syst
- call FaitMinutes
- call FaitHeures
- call FaitSecondes
- invoke GetTimeFormat,LOCALE_USER_DEFAULT,TIME_FORCE24HOURFORMAT,NULL,addr forme,addr buffer,20
- invoke SetDlgItemText,hWnd,1002,addr buffer
-
- .ELSE
- mov eax,FALSE
- ret
- .ENDIF
- mov eax,TRUE
- ret
- DlgProc endp
-
- ;*****************************************
- Minutes proc
-
- invoke MoveToEx,hdc,106,39,0
- invoke LineTo,hdc,106,40
- invoke MoveToEx,hdc,113,40,0
- invoke LineTo,hdc,113,41
- invoke MoveToEx,hdc,119,42,0
- invoke LineTo,hdc,119,43
- invoke MoveToEx,hdc,125,44,0
- invoke LineTo,hdc,125,46
- invoke MoveToEx,hdc,136,51,0
- invoke LineTo,hdc,136,52
- invoke MoveToEx,hdc,141,55,0
- invoke LineTo,hdc,141,56
- invoke MoveToEx,hdc,145,59,0
- invoke LineTo,hdc,145,60
- invoke MoveToEx,hdc,150,65,0
- invoke LineTo,hdc,150,66
- invoke MoveToEx,hdc,156,75,0
- invoke LineTo,hdc,156,76
- invoke MoveToEx,hdc,158,81,0
- invoke LineTo,hdc,158,82
- invoke MoveToEx,hdc,160,88,0
- invoke LineTo,hdc,160,89
- invoke MoveToEx,hdc,161,94,0
- invoke LineTo,hdc,161,95
- invoke MoveToEx,hdc,161,107,0
- invoke LineTo,hdc,161,108
- invoke MoveToEx,hdc,159,113,0
- invoke LineTo,hdc,159,114
- invoke MoveToEx,hdc,158,119,0
- invoke LineTo,hdc,158,120
- invoke MoveToEx,hdc,156,125,0
- invoke LineTo,hdc,156,126
- invoke MoveToEx,hdc,149,136,0
- invoke LineTo,hdc,149,137
- invoke MoveToEx,hdc,145,141,0
- invoke LineTo,hdc,145,142
- invoke MoveToEx,hdc,140,145,0
- invoke LineTo,hdc,140,146
- invoke MoveToEx,hdc,136,150,0
- invoke LineTo,hdc,136,151
- invoke MoveToEx,hdc,125,156,0
- invoke LineTo,hdc,125,157
- invoke MoveToEx,hdc,119,158,0
- invoke LineTo,hdc,119,159
- invoke MoveToEx,hdc,113,160,0
- invoke LineTo,hdc,113,161
- invoke MoveToEx,hdc,107,161,0
- invoke LineTo,hdc,107,162
- invoke MoveToEx,hdc,94,161,0
- invoke LineTo,hdc,94,162
- invoke MoveToEx,hdc,87,160,0
- invoke LineTo,hdc,87,161
- invoke MoveToEx,hdc,81,158,0
- invoke LineTo,hdc,81,159
- invoke MoveToEx,hdc,76,156,0
- invoke LineTo,hdc,76,157
- invoke MoveToEx,hdc,64,149,0
- invoke LineTo,hdc,64,150
- invoke MoveToEx,hdc,59,146,0
- invoke LineTo,hdc,59,147
- invoke MoveToEx,hdc,54,141,0
- invoke LineTo,hdc,54,142
- invoke MoveToEx,hdc,51,136,0
- invoke LineTo,hdc,51,137
- invoke MoveToEx,hdc,44,125,0
- invoke LineTo,hdc,44,126
- invoke MoveToEx,hdc,42,119,0
- invoke LineTo,hdc,42,120
- invoke MoveToEx,hdc,41,113,0
- invoke LineTo,hdc,41,114
- invoke MoveToEx,hdc,39,106,0
- invoke LineTo,hdc,39,107
- invoke MoveToEx,hdc,39,93,0
- invoke LineTo,hdc,39,94
- invoke MoveToEx,hdc,40,87,0
- invoke LineTo,hdc,40,88
- invoke MoveToEx,hdc,41,81,0
- invoke LineTo,hdc,41,82
- invoke MoveToEx,hdc,44,75,0
- invoke LineTo,hdc,44,76
- invoke MoveToEx,hdc,50,64,0
- invoke LineTo,hdc,50,65
- invoke MoveToEx,hdc,54,59,0
- invoke LineTo,hdc,54,60
- invoke MoveToEx,hdc,59,54,0
- invoke LineTo,hdc,59,55
- invoke MoveToEx,hdc,64,51,0
- invoke LineTo,hdc,64,52
- invoke MoveToEx,hdc,75,44,0
- invoke LineTo,hdc,75,45
- invoke MoveToEx,hdc,81,42,0
- invoke LineTo,hdc,81,43
- invoke MoveToEx,hdc,87,40,0
- invoke LineTo,hdc,87,41
- invoke MoveToEx,hdc,94,39,0
- invoke LineTo,hdc,94,40
- ret
- Minutes endp
- ;******************************************
- FaitSecondes proc
-
- call EffaceSecondes
- movzx eax,Syst.wMinute
- inc eax
- invoke CreatePen,0,1,000000FFh
- mov hPen,eax
- invoke SelectObject,hdc,hPen
- invoke MoveToEx,hdc,100,100,0
- movzx eax,Syst.wSecond
- mov ebx,eax
- movzx eax,xTab[eax]
- movzx ebx,yTab[ebx]
- mov Xs,eax
- mov Ys,ebx
- invoke LineTo,hdc,eax,ebx
- invoke DeleteObject,hPen
-
- ret
- FaitSecondes endp
- ;******************************************
- FaitMinutes proc
-
- call EffaceMinutes
- invoke CreatePen,0,1,00FF0000h
- mov hPen,eax
- invoke SelectObject,hdc,hPen
- invoke CreateSolidBrush,0000FF00h
- mov hBrush,eax
- invoke SelectObject,hdc,hBrush
- movzx eax,Syst.wMinute
- mul [Cpt]
- lea esi,xTab0
- add esi,eax
- lea edi,Tab1
- mov Xm,esi
- mov Ym,edi
- invoke PolyPolygon,hdc,esi,edi,1 ;;;;;;
- invoke DeleteObject,hPen
- invoke DeleteObject,hBrush
-
- ret
- FaitMinutes endp
- ;*******************************************
- EffaceSecondes proc
-
- invoke CreatePen,0,1,00FFFFFFh;00D8E9ECh
- mov hPen,eax
- invoke SelectObject,hdc,hPen
- invoke MoveToEx,hdc,100,100,0
- invoke LineTo,hdc,Xs,Ys
- invoke DeleteObject,hPen
- ret
- EffaceSecondes endp
-
- ;*******************************************
- EffaceMinutes proc
-
- invoke CreatePen,0,1,00FFFFFFh;00D8E9ECh
- mov hPen,eax
- invoke SelectObject,hdc,hPen
- invoke CreateSolidBrush,00FFFFFFh
- mov hBrush,eax
- invoke SelectObject,hdc,hBrush
- invoke PolyPolygon,hdc,Xm,Ym,1
- invoke DeleteObject,hPen
- invoke DeleteObject,hBrush
- ret
- EffaceMinutes endp
- ;*******************************************
-
- ;*******************************************
- FaitHeures proc
-
- call EffaceHeures
- invoke CreatePen,0,1,00FF0000h
- mov hPen,eax
- invoke SelectObject,hdc,hPen
- invoke CreateSolidBrush,0000FF00h
- mov hBrush,eax
- invoke SelectObject,hdc,hBrush
- invoke GetLocalTime,addr Syst
- movzx eax,Syst.wHour
- cmp eax,13
- jb @F
- sub eax,12
- @@:
- mul Cpt1
- lea esi,xTab1
- add esi,eax
- lea edi,Tab1
- .if (Syst.wMinute > 47)
- add esi,128
- .elseif (Syst.wMinute > 35) && (Syst.wMinute < 48)
- add esi,96
- .elseif (Syst.wMinute > 23) && (Syst.wMinute < 36)
- add esi,64
- .elseif (Syst.wMinute > 11) && (Syst.wMinute < 24)
- add esi,32
- .endif
- mov hX,esi
- mov hY,edi
- invoke PolyPolygon,hdc,esi,edi,1
- invoke DeleteObject,hPen
- invoke DeleteObject,hBrush
-
- ret
- FaitHeures endp
- ;*******************************************
- EffaceHeures proc
- invoke CreatePen,0,1,00FFFFFFh
- mov hPen,eax
- invoke SelectObject,hdc,hPen
- invoke CreateSolidBrush,00FFFFFFh
- mov hBrush,eax
- invoke SelectObject,hdc,hBrush
- invoke PolyPolygon,hdc,hX,hY,1
- invoke DeleteObject,hPen
- invoke DeleteObject,hBrush
- ret
- EffaceHeures endp
- ;*******************************************
- end start
-
- ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
-
-
- #include "\masm32\include\resource.h"
-
- IDI_ICON1 ICON DISCARDABLE "\masm32\en_cours\icones\essai.ico"
-
- MonDialog DIALOGEX 90,15,50,65
- STYLE WS_CAPTION | WS_SYSMENU | WS_VISIBLE | WS_GROUP
-
- CAPTION " Date + heure ?"
- FONT 24,"Monotype Corsiva",800,1
-
- BEGIN
-
- EDITTEXT 1002,8,40,35,10,ES_LEFT | WS_BORDER | ES_WANTRETURN
-
- END
.586
.model flat,stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\masm32.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
include \masm32\include\gdi32.inc
includelib \masm32\lib\masm32.lib
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\gdi32.lib
DlgProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
;**********************************
; MACROS
;**********************************
RGB MACRO red, green, blue
xor eax, eax
mov al, blue ; blue
rol eax, 8
mov al, green ; green
rol eax, 8
mov al, red ; red
ENDM
; ---------------------
literal MACRO quoted_text:VARARG
LOCAL local_text
.data
local_text db quoted_text,0
.code
EXITM <local_text>
ENDM
; --------------------------------
; string address in INVOKE format
; --------------------------------
SADD MACRO quoted_text:VARARG
EXITM <ADDR literalquoted_text)>
ENDM
; --------------------------------
m2m MACRO M1, M2
push M2
pop M1
ENDM
;*********************************
.const
.data
DlgName db "MonDialog",0
xTab0 POINT {100,100},{104,55},{100,40},{95,55},{100,100},{109,56},{106,40},{100,55},{100,100},{114,57},{113,41},{104,55},{100,100},{118,59},{119,43},{109,56}
POINT {100,100},{123,62},{125,45},{114,57},{100,100},{126,64},{130,47},{118,59},{100,100},{130,67},{135,51},{123,62},{100,100},{133,70},{140,55},{126,64}
POINT {100,100},{136,74},{144,59},{130,67},{100,100},{138,78},{149,65},{133,70},{100,100},{141,82},{153,69},{136,74},{100,100},{142,87},{155,75},{138,78}
POINT {100,100},{143,92},{157,81},{141,82},{100,100},{144,96},{159,88},{142,87},{100,100},{145,100},{160,94},{143,92},{100,100},{144,105},{160,100},{144,96}
POINT {100,100},{143,110},{160,107},{145,100},{100,100},{142,114},{158,113},{144,105},{100,100},{140,118},{157,119},{143,110},{100,100},{139,122},{155,125},{142,114}
POINT {100,100},{136,126},{153,131},{140,118},{100,100},{133,130},{148,136},{139,122},{100,100},{129,133},{144,141},{136,126},{100,100},{126,136},{139,145},{133,130}
POINT {100,100},{122,139},{135,150},{129,133},{100,100},{118,141},{131,153},{126,136},{100,100},{113,142},{125,155},{122,139},{100,100},{109,143},{119,157},{118,141}
POINT {100,100},{104,144},{113,159},{113,142},{100,100},{100,144},{107,160},{109,143},{100,100},{95,144},{100,161},{104,144},{100,100},{91,144},{94,160},{100,144}
POINT {100,100},{86,142},{87,159},{95,144},{100,100},{82,141},{81,157},{91,144},{100,100},{78,139},{76,155},{86,142},{100,100},{73,136},{69,152},{82,141}
POINT {100,100},{70,133},{65,149},{78,139},{100,100},{67,130},{60,146},{73,136},{100,100},{64,127},{55,141},{70,133},{100,100},{61,122},{52,136},{67,130}
POINT {100,100},{59,118},{48,131},{64,127},{100,100},{57,114},{45,125},{61,122},{100,100},{56,110},{43,119},{59,118},{100,100},{55,105},{42,113},{57,114}
POINT {100,100},{55,100},{40,106},{56,110},{100,100},{55,95},{39,100},{55,105},{100,100},{56,91},{40,93},{55,100},{100,100},{57,86},{41,87},{55,95}
POINT {100,100},{58,82},{42,81},{56,91},{100,100},{60,77},{45,75},{57,86},{100,100},{64,74},{46,68},{58,82},{100,100},{66,70},{51,64},{60,77}
POINT {100,100},{70,67},{55,59},{64,74},{100,100},{73,63},{60,54},{66,70},{100,100},{77,61},{65,51},{70,67},{100,100},{81,59},{70,46},{73,63}
POINT {100,100},{86,57},{75,45},{77,61},{100,100},{91,56},{81,43},{81,59},{100,100},{95,55},{87,41},{86,57},{100,100},{100,55},{94,40},{91,56}
xTab1 POINT {100,100},{95,89},{100,56},{105,89},{100,100},{97,88},{104,55},{106,89},{100,100},{98,88},{110,55},{107,89},{100,100},{100,87},{114,57},{108,90}
POINT {100,100},{101,86},{118,59},{110,90},{100,100},{103,87},{122,61},{111,92},{100,100},{103,88},{126,64},{110,93},{100,100},{104,89},{130,67},{112,95}
POINT {100,100},{106,89},{133,70},{113,95},{100,100},{107,90},{136,74},{112,97},{100,100},{108,90},{139,78},{113,98},{100,100},{110,91},{141,82},{113,99}
POINT {100,100},{110,93},{143,87},{113,100},{100,100},{111,93},{144,92},{113,102},{100,100},{111,94},{145,96},{112,103},{100,100},{112,96},{145,100},{112,105}
POINT {100,100},{113,97},{145,105},{112,107},{100,100},{114,98},{144,110},{111,108},{100,100},{113,99},{142,114},{110,108},{100,100},{112,101},{141,118},{108,109}
POINT {100,100},{113,102},{139,122},{108,111},{100,100},{112,104},{136,126},{107,112},{100,100},{112,104},{133,130},{105,111},{100,100},{112,106},{130,133},{105,112}
POINT {100,100},{110,106},{126,136},{103,112},{100,100},{110,108},{122,139},{102,113},{100,100},{108,109},{118,141},{100,113},{100,100},{108,110},{114,142},{99,113}
POINT {100,100},{106,110},{109,144},{97,112},{100,100},{105,112},{104,144},{96,112},{100,100},{104,112},{100,144},{95,112},{100,100},{103,113},{95,144},{94,112}
POINT {100,100},{102,113},{90,144},{93,111},{100,100},{100,112},{86,142},{92,110},{100,100},{99,113},{81,141},{91,109},{100,100},{98,112},{77,139},{90,108}
POINT {100,100},{97,112},{73,136},{89,107},{100,100},{95,112},{70,134},{88,106},{100,100},{94,111},{67,130},{88,104},{100,100},{93,110},{64,126},{88,103}
POINT {100,100},{92,110},{61,122},{87,102},{100,100},{91,109},{59,118},{87,101},{100,100},{90,108},{57,114},{87,99},{100,100},{89,107},{56,110},{87,98}
POINT {100,100},{88,106},{55,105},{87,97},{100,100},{88,105},{55,100},{88,95},{100,100},{87,104},{55,95},{88,94},{100,100},{87,102},{56,91},{89,93}
POINT {100,100},{87,101},{57,87},{90,92},{100,100},{86,100},{58,82},{90,91},{100,100},{87,98},{60,77},{92,90},{100,100},{86,96},{63,74},{92,88}
POINT {100,100},{87,95},{66,70},{93,87},{100,100},{88,93},{70,67},{95,87},{100,100},{89,93},{73,63},{96,86},{100,100},{89,91},{77,61},{98,86}
POINT {100,100},{91,90},{81,59},{100,86},{100,100},{92,89},{86,57},{101,86},{100,100},{93,88},{90,56},{102,86},{100,100},{94,89},{95,55},{103,87}
xTab db 100,106,113,119,125,131,136,141,145,150,154,156,158,160,161,161,161,159,158,156,154,149,145,140
db 136,131,125,119,113,107,100,94,87,81,76,69,64,59,54,51,47,44,42,41,39,38,39,40,41,44,45,50,54,59
db 64,69,75,81,87,94
yTab db 39,39,40,42,44,47,51,55,59,65,69,75,81,88,94,100,107,113,119,125,131,136,141,145,150,154,156,158
db 160,161,162,161,160,158,156,153,149,146,141,136,131,125,119,113,106,100,93,87,81,75,68,64,59,54
db 51,46,44,42,40,39,39
Tab1 dd (4)
Cpt db (32)
Cpt1 db (160)
Xs dd (100)
Ys dd (100)
forme db "HH:mm:ss",0
buffer db 20 dup (0)
format db "dddd dd MMMM yyyy",0
buff db 27 dup (0)
TxtStatic db "STATIC",0
.data?
hInstance dd ?
hdc dd ?
hBrush dd ?
hPen dd ?
hX dd ?
hY dd ?
Xm dd ?
Ym dd ?
Syst SYSTEMTIME <?>
.data
Ps PAINTSTRUCT <>
.code
start:
invoke GetModuleHandle, NULL
mov hInstance,eax
encore:
invoke DialogBoxParam, 0, ADDR DlgName,NULL,addr DlgProc,NULL
fin:
invoke ExitProcess,eax
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
DlgProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
;LOCAL xTab[3] :BYTE
.IF uMsg == WM_CLOSE
invoke EndDialog,hWnd,NULL
.ELSEIF uMsg == WM_INITDIALOG
invoke SetTimer,hWnd,15,1000,NULL
invoke GetDateFormat,0,0,0,addr format,addr buff,27
invoke CreateWindowEx,WS_EX_CLIENTEDGE,addr TxtStatic,addr buff,
SS_CENTER or WS_BORDER or WS_VISIBLE or WS_CHILD,14,262,174,27,hWnd,300,
hInstance,0
.ELSEIF uMsg==WM_PAINT
invoke BeginPaint,hWnd,addr Ps
mov hdc,eax
invoke Arc,hdc,15,15,185,185,100,185,100,185
invoke Ellipse,hdc,16,16,184,184
;****************************************
;* dessin des chiffres
;****************************************
; I
;****************************************
invoke MoveToEx,hdc,138,36,0
invoke LineTo,hdc,138,45
invoke MoveToEx,hdc,139,36,0
invoke LineTo,hdc,139,45
;****************************************
; II
;****************************************
invoke MoveToEx,hdc,160,61,0
invoke LineTo,hdc,160,70
invoke MoveToEx,hdc,161,61,0
invoke LineTo,hdc,161,70
invoke MoveToEx,hdc,163,61,0
invoke LineTo,hdc,163,70
invoke MoveToEx,hdc,164,61,0
invoke LineTo,hdc,164,70
;****************************************
; III
;****************************************
invoke MoveToEx,hdc,167,96,0
invoke LineTo,hdc,167,105
invoke MoveToEx,hdc,168,96,0
invoke LineTo,hdc,168,105
invoke MoveToEx,hdc,170,96,0
invoke LineTo,hdc,170,105
invoke MoveToEx,hdc,171,96,0
invoke LineTo,hdc,171,105
invoke MoveToEx,hdc,173,96,0
invoke LineTo,hdc,173,105
invoke MoveToEx,hdc,174,96,0
invoke LineTo,hdc,174,105
;****************************************
; IV
;****************************************
invoke MoveToEx,hdc,162,126,0
invoke LineTo,hdc,162,135
invoke MoveToEx,hdc,163,126,0
invoke LineTo,hdc,163,135
invoke MoveToEx,hdc,165,126,0
invoke LineTo,hdc,168,135
invoke MoveToEx,hdc,166,126,0
invoke LineTo,hdc,169,135
invoke MoveToEx,hdc,171,126,0
invoke LineTo,hdc,168,135
invoke MoveToEx,hdc,172,126,0
invoke LineTo,hdc,169,135
;****************************************
; V
;****************************************
invoke MoveToEx,hdc,135,154,0
invoke LineTo,hdc,138,163
invoke MoveToEx,hdc,136,154,0
invoke LineTo,hdc,139,163
invoke MoveToEx,hdc,141,154,0
invoke LineTo,hdc,138,163
invoke MoveToEx,hdc,142,154,0
invoke LineTo,hdc,139,163
;****************************************
; VI
;****************************************
invoke MoveToEx,hdc,95,166,0
invoke LineTo,hdc,98,175
invoke MoveToEx,hdc,96,166,0
invoke LineTo,hdc,99,175
invoke MoveToEx,hdc,101,166,0
invoke LineTo,hdc,98,175
invoke MoveToEx,hdc,102,166,0
invoke LineTo,hdc,99,175
invoke MoveToEx,hdc,104,166,0
invoke LineTo,hdc,104,175
invoke MoveToEx,hdc,105,166,0
invoke LineTo,hdc,105,175
;****************************************
; VII
;****************************************
invoke MoveToEx,hdc,60,158,0
invoke LineTo,hdc,63,167
invoke MoveToEx,hdc,61,158,0
invoke LineTo,hdc,64,167
invoke MoveToEx,hdc,66,158,0
invoke LineTo,hdc,63,167
invoke MoveToEx,hdc,67,158,0
invoke LineTo,hdc,64,167
invoke MoveToEx,hdc,69,158,0
invoke LineTo,hdc,69,167
invoke MoveToEx,hdc,70,158,0
invoke LineTo,hdc,70,167
invoke MoveToEx,hdc,72,158,0
invoke LineTo,hdc,72,167
invoke MoveToEx,hdc,73,158,0
invoke LineTo,hdc,73,167
;****************************************
; VIII
;****************************************
invoke MoveToEx,hdc,28,130,0
invoke LineTo,hdc,31,139
invoke MoveToEx,hdc,29,130,0
invoke LineTo,hdc,32,139
invoke MoveToEx,hdc,34,130,0
invoke LineTo,hdc,31,139
invoke MoveToEx,hdc,35,130,0
invoke LineTo,hdc,32,139
invoke MoveToEx,hdc,37,130,0
invoke LineTo,hdc,37,139
invoke MoveToEx,hdc,38,130,0
invoke LineTo,hdc,38,139
invoke MoveToEx,hdc,39,130,0
invoke LineTo,hdc,39,139
invoke MoveToEx,hdc,40,130,0
invoke LineTo,hdc,40,139
invoke MoveToEx,hdc,41,130,0
invoke LineTo,hdc,41,139
invoke MoveToEx,hdc,42,130,0
invoke LineTo,hdc,42,139
;****************************************
; IX
;****************************************
invoke MoveToEx,hdc,23,96,0
invoke LineTo,hdc,23,105
invoke MoveToEx,hdc,24,96,0
invoke LineTo,hdc,24,105
invoke MoveToEx,hdc,26,96,0
invoke LineTo,hdc,32,105
invoke MoveToEx,hdc,27,96,0
invoke LineTo,hdc,33,105
invoke MoveToEx,hdc,32,96,0
invoke LineTo,hdc,26,105
invoke MoveToEx,hdc,33,96,0
invoke LineTo,hdc,27,105
;****************************************
; X
;****************************************
invoke MoveToEx,hdc,31,63,0
invoke LineTo,hdc,38,73
invoke MoveToEx,hdc,32,63,0
invoke LineTo,hdc,39,73
invoke MoveToEx,hdc,37,63,0
invoke LineTo,hdc,29,73
invoke MoveToEx,hdc,38,63,0
invoke LineTo,hdc,30,73
;****************************************
; XI
;****************************************
invoke MoveToEx,hdc,53,38,0
invoke LineTo,hdc,57,45
invoke MoveToEx,hdc,54,38,0
invoke LineTo,hdc,58,48
invoke MoveToEx,hdc,57,38,0
invoke LineTo,hdc,53,48
invoke MoveToEx,hdc,58,38,0
invoke LineTo,hdc,54,48
invoke MoveToEx,hdc,60,38,0
invoke LineTo,hdc,60,48
invoke MoveToEx,hdc,61,38,0
invoke LineTo,hdc,61,48
;****************************************
; XII
;****************************************
invoke MoveToEx,hdc,90,24,0
invoke LineTo,hdc,95,34
invoke MoveToEx,hdc,91,24,0
invoke LineTo,hdc,96,34
invoke MoveToEx,hdc,95,24,0
invoke LineTo,hdc,90,34
invoke MoveToEx,hdc,96,24,0
invoke LineTo,hdc,91,34
invoke MoveToEx,hdc,99,24,0
invoke LineTo,hdc,99,34
invoke MoveToEx,hdc,100,24,0
invoke LineTo,hdc,100,34
invoke MoveToEx,hdc,103,24,0
invoke LineTo,hdc,103,34
invoke MoveToEx,hdc,104,24,0
invoke LineTo,hdc,104,34
;****************************************
; Marquage des heures sur la périphérie
;****************************************
Invoke MoveToEx,hdc,100,35,0
Invoke LineTo,hdc,100,40
Invoke MoveToEx,hdc,133,44,0
Invoke LineTo,hdc,130,48
Invoke MoveToEx,hdc,156,69,0
Invoke LineTo,hdc,151,71
Invoke MoveToEx,hdc,165,100,0
Invoke LineTo,hdc,160,100
Invoke MoveToEx,hdc,156,132,0
Invoke LineTo,hdc,151,129
Invoke MoveToEx,hdc,132,156,0
Invoke LineTo,hdc,130,152
Invoke MoveToEx,hdc,100,165,0
Invoke LineTo,hdc,100,160
Invoke MoveToEx,hdc,67,156,0
Invoke LineTo,hdc,70,152
Invoke MoveToEx,hdc,44,133,0
Invoke LineTo,hdc,48,130
Invoke MoveToEx,hdc,35,100,0
Invoke LineTo,hdc,40,100
Invoke MoveToEx,hdc,43,67,0
Invoke LineTo,hdc,48,70
Invoke MoveToEx,hdc,67,44,0
Invoke LineTo,hdc,70,47
call Minutes
invoke GetLocalTime,addr Syst
call FaitSecondes
call FaitMinutes
call FaitHeures
;***********************************************
; Pas de EndPaint,sinon le mouvement est stoppé
;***********************************************
.ELSEIF uMsg==WM_CTLCOLORSTATIC
.ELSEIF uMsg == WM_COMMAND
mov eax,wParam
.ELSEIF uMsg == WM_TIMER
invoke GetLocalTime,addr Syst
call FaitMinutes
call FaitHeures
call FaitSecondes
invoke GetTimeFormat,LOCALE_USER_DEFAULT,TIME_FORCE24HOURFORMAT,NULL,addr forme,addr buffer,20
invoke SetDlgItemText,hWnd,1002,addr buffer
.ELSE
mov eax,FALSE
ret
.ENDIF
mov eax,TRUE
ret
DlgProc endp
;*****************************************
Minutes proc
invoke MoveToEx,hdc,106,39,0
invoke LineTo,hdc,106,40
invoke MoveToEx,hdc,113,40,0
invoke LineTo,hdc,113,41
invoke MoveToEx,hdc,119,42,0
invoke LineTo,hdc,119,43
invoke MoveToEx,hdc,125,44,0
invoke LineTo,hdc,125,46
invoke MoveToEx,hdc,136,51,0
invoke LineTo,hdc,136,52
invoke MoveToEx,hdc,141,55,0
invoke LineTo,hdc,141,56
invoke MoveToEx,hdc,145,59,0
invoke LineTo,hdc,145,60
invoke MoveToEx,hdc,150,65,0
invoke LineTo,hdc,150,66
invoke MoveToEx,hdc,156,75,0
invoke LineTo,hdc,156,76
invoke MoveToEx,hdc,158,81,0
invoke LineTo,hdc,158,82
invoke MoveToEx,hdc,160,88,0
invoke LineTo,hdc,160,89
invoke MoveToEx,hdc,161,94,0
invoke LineTo,hdc,161,95
invoke MoveToEx,hdc,161,107,0
invoke LineTo,hdc,161,108
invoke MoveToEx,hdc,159,113,0
invoke LineTo,hdc,159,114
invoke MoveToEx,hdc,158,119,0
invoke LineTo,hdc,158,120
invoke MoveToEx,hdc,156,125,0
invoke LineTo,hdc,156,126
invoke MoveToEx,hdc,149,136,0
invoke LineTo,hdc,149,137
invoke MoveToEx,hdc,145,141,0
invoke LineTo,hdc,145,142
invoke MoveToEx,hdc,140,145,0
invoke LineTo,hdc,140,146
invoke MoveToEx,hdc,136,150,0
invoke LineTo,hdc,136,151
invoke MoveToEx,hdc,125,156,0
invoke LineTo,hdc,125,157
invoke MoveToEx,hdc,119,158,0
invoke LineTo,hdc,119,159
invoke MoveToEx,hdc,113,160,0
invoke LineTo,hdc,113,161
invoke MoveToEx,hdc,107,161,0
invoke LineTo,hdc,107,162
invoke MoveToEx,hdc,94,161,0
invoke LineTo,hdc,94,162
invoke MoveToEx,hdc,87,160,0
invoke LineTo,hdc,87,161
invoke MoveToEx,hdc,81,158,0
invoke LineTo,hdc,81,159
invoke MoveToEx,hdc,76,156,0
invoke LineTo,hdc,76,157
invoke MoveToEx,hdc,64,149,0
invoke LineTo,hdc,64,150
invoke MoveToEx,hdc,59,146,0
invoke LineTo,hdc,59,147
invoke MoveToEx,hdc,54,141,0
invoke LineTo,hdc,54,142
invoke MoveToEx,hdc,51,136,0
invoke LineTo,hdc,51,137
invoke MoveToEx,hdc,44,125,0
invoke LineTo,hdc,44,126
invoke MoveToEx,hdc,42,119,0
invoke LineTo,hdc,42,120
invoke MoveToEx,hdc,41,113,0
invoke LineTo,hdc,41,114
invoke MoveToEx,hdc,39,106,0
invoke LineTo,hdc,39,107
invoke MoveToEx,hdc,39,93,0
invoke LineTo,hdc,39,94
invoke MoveToEx,hdc,40,87,0
invoke LineTo,hdc,40,88
invoke MoveToEx,hdc,41,81,0
invoke LineTo,hdc,41,82
invoke MoveToEx,hdc,44,75,0
invoke LineTo,hdc,44,76
invoke MoveToEx,hdc,50,64,0
invoke LineTo,hdc,50,65
invoke MoveToEx,hdc,54,59,0
invoke LineTo,hdc,54,60
invoke MoveToEx,hdc,59,54,0
invoke LineTo,hdc,59,55
invoke MoveToEx,hdc,64,51,0
invoke LineTo,hdc,64,52
invoke MoveToEx,hdc,75,44,0
invoke LineTo,hdc,75,45
invoke MoveToEx,hdc,81,42,0
invoke LineTo,hdc,81,43
invoke MoveToEx,hdc,87,40,0
invoke LineTo,hdc,87,41
invoke MoveToEx,hdc,94,39,0
invoke LineTo,hdc,94,40
ret
Minutes endp
;******************************************
FaitSecondes proc
call EffaceSecondes
movzx eax,Syst.wMinute
inc eax
invoke CreatePen,0,1,000000FFh
mov hPen,eax
invoke SelectObject,hdc,hPen
invoke MoveToEx,hdc,100,100,0
movzx eax,Syst.wSecond
mov ebx,eax
movzx eax,xTab[eax]
movzx ebx,yTab[ebx]
mov Xs,eax
mov Ys,ebx
invoke LineTo,hdc,eax,ebx
invoke DeleteObject,hPen
ret
FaitSecondes endp
;******************************************
FaitMinutes proc
call EffaceMinutes
invoke CreatePen,0,1,00FF0000h
mov hPen,eax
invoke SelectObject,hdc,hPen
invoke CreateSolidBrush,0000FF00h
mov hBrush,eax
invoke SelectObject,hdc,hBrush
movzx eax,Syst.wMinute
mul [Cpt]
lea esi,xTab0
add esi,eax
lea edi,Tab1
mov Xm,esi
mov Ym,edi
invoke PolyPolygon,hdc,esi,edi,1 ;;;;;;
invoke DeleteObject,hPen
invoke DeleteObject,hBrush
ret
FaitMinutes endp
;*******************************************
EffaceSecondes proc
invoke CreatePen,0,1,00FFFFFFh;00D8E9ECh
mov hPen,eax
invoke SelectObject,hdc,hPen
invoke MoveToEx,hdc,100,100,0
invoke LineTo,hdc,Xs,Ys
invoke DeleteObject,hPen
ret
EffaceSecondes endp
;*******************************************
EffaceMinutes proc
invoke CreatePen,0,1,00FFFFFFh;00D8E9ECh
mov hPen,eax
invoke SelectObject,hdc,hPen
invoke CreateSolidBrush,00FFFFFFh
mov hBrush,eax
invoke SelectObject,hdc,hBrush
invoke PolyPolygon,hdc,Xm,Ym,1
invoke DeleteObject,hPen
invoke DeleteObject,hBrush
ret
EffaceMinutes endp
;*******************************************
;*******************************************
FaitHeures proc
call EffaceHeures
invoke CreatePen,0,1,00FF0000h
mov hPen,eax
invoke SelectObject,hdc,hPen
invoke CreateSolidBrush,0000FF00h
mov hBrush,eax
invoke SelectObject,hdc,hBrush
invoke GetLocalTime,addr Syst
movzx eax,Syst.wHour
cmp eax,13
jb @F
sub eax,12
@@:
mul Cpt1
lea esi,xTab1
add esi,eax
lea edi,Tab1
.if (Syst.wMinute > 47)
add esi,128
.elseif (Syst.wMinute > 35) && (Syst.wMinute < 48)
add esi,96
.elseif (Syst.wMinute > 23) && (Syst.wMinute < 36)
add esi,64
.elseif (Syst.wMinute > 11) && (Syst.wMinute < 24)
add esi,32
.endif
mov hX,esi
mov hY,edi
invoke PolyPolygon,hdc,esi,edi,1
invoke DeleteObject,hPen
invoke DeleteObject,hBrush
ret
FaitHeures endp
;*******************************************
EffaceHeures proc
invoke CreatePen,0,1,00FFFFFFh
mov hPen,eax
invoke SelectObject,hdc,hPen
invoke CreateSolidBrush,00FFFFFFh
mov hBrush,eax
invoke SelectObject,hdc,hBrush
invoke PolyPolygon,hdc,hX,hY,1
invoke DeleteObject,hPen
invoke DeleteObject,hBrush
ret
EffaceHeures endp
;*******************************************
end start
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
#include "\masm32\include\resource.h"
IDI_ICON1 ICON DISCARDABLE "\masm32\en_cours\icones\essai.ico"
MonDialog DIALOGEX 90,15,50,65
STYLE WS_CAPTION | WS_SYSMENU | WS_VISIBLE | WS_GROUP
CAPTION " Date + heure ?"
FONT 24,"Monotype Corsiva",800,1
BEGIN
EDITTEXT 1002,8,40,35,10,ES_LEFT | WS_BORDER | ES_WANTRETURN
END
Conclusion
compilé en Masm32
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Assembleur ... [ par pi0up51 ]
Voilà je voulais savoir qch ..Je fais un bac S spécialité Science de l'ingenieur et on fais de la programmation assembleur, sur un vieux microcontrole
Deux Questions (Pas compliqué) [ par Dalamar ]
Je commence en Assembleur et j'ai deux questions:1-Je travaille avec dev-c++ et je voudrais savoir comment on inclus de l'assembleur2-J'ai trouvé u
Quel assembleur choisir ? [ par trinitacs ]
J'aimerai savoir quel est le meilleur assembleur qui existe ou si il en faut mixer. Je début difficielment l'asm avec NASM. Faut-il choisir MASM, TASM
langage c /assembleur [ par almai467 ]
salut ..!mon projet de fin d'annee est un logiciel (compteur internet) qui compte la duree de la connexion internet et le cout avec le langage c je c'
Programmation assembleur d'un pilote de souris serie [ par Scaq ]
COUCOU, C SCAQ...J'ai du mal à recevoir les données de ma souris serie
compilateur assembleur [ par morganitos ]
Salut a tous ce qui liront ce message.Je débute en programmation assembleur et voici ma question : où pourrai-je trouver un assembleur, un linker ...(
Petit problème pour le nul en assembleur que je suis Merci d'avance [ par rgc50 ]
Trouver parmis les 5 nombres 67, 79, 15, e3, 72 le nombre le pls élevé, on le stockera le résultat en 0100 (en assembleur 68000 (MOTOROLA)).
Pb assembleur très facile (pas pour moi) Merci d'avance [ par rgc50 ]
Trouver parmis les 5 nombres 67, 79, 15, e3, 72 le nombre le pls élevé, on le stockera le résultat en 0100 (en assembleur 68000 (MOTOROLA)).
Commander un PCF 8574 en assembleur 68000 [ par Apophis74 ]
Je cherche quelqu'un qui pourrait m'adier à faire communiquer ma carte Coldfire 5307 avec une carte d'ES PCF8574 via le bus I2C en assembleur 68000. M
Utilistaionde l'I2C en assembleur 68000 [ par Apophis74 ]
Je cherche une source qui pourrait m'aider à utiliser le bus I2C de ma carte Coldfire 5307 en asssembleur 68000. Help me!Apophis74
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
974 Application Server (12.2.4.0)974 APPLICATION SERVER (12.2.4.0)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP mySongBook Player (1.0.0)MYSONGBOOK PLAYER (1.0.0)mySongBook Player est un logiciel gratuit permettant l'accès à une archive de tablatures/partitio... Cliquez pour télécharger mySongBook Player
|