Accueil > > > FENETRE IRREGULIERE COOL POUR LES SPLASH OU INTRO! [MASM32]
FENETRE IRREGULIERE COOL POUR LES SPLASH OU INTRO! [MASM32]
Information sur la source
Description
encore un code pas de moi mais que je me suis amusé a modifier... j'apprend l'asm comme ça, en modifiant et en touchant a tout! le prog pour generer le fichier .rgn, je l'ai trouvé ici :: http://www.codeproject.com/
Source
- .386
- .model flat, stdcall
- option casemap :none
-
- include \MASM32\INCLUDE\windows.inc
- include \MASM32\INCLUDE\gdi32.inc
- include \MASM32\INCLUDE\user32.inc
- include \MASM32\INCLUDE\kernel32.inc
-
- includelib \MASM32\LIB\gdi32.lib
- includelib \MASM32\LIB\user32.lib
- includelib \MASM32\LIB\kernel32.lib
-
- WinMain PROTO :DWORD,:DWORD,:DWORD,:DWORD
- WndProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
-
- .DATA
-
- ClassName db "cws_class",0
- DisplayName db "[--BlackWizzard--]",0
-
- Text db "Vous me quittez?",0
-
- ButtonClassName db "button",0
- ButtonText db "[-Quitter-]",0
-
- RsrcName db "RANGE",0
- RsrcType db "RGN",0
-
- .DATA?
-
- hWnd dd ?
- hInstance dd ?
- RsrcHand dd ?
- RsrcSize dd ?
- RsrcPoint dd ?
- hwndButton dd ?
-
- .CONST
-
- ButtonID equ 1000
- PictureW equ 500
- PictureH equ 300
-
- .CODE
-
- start:
- invoke GetModuleHandle, NULL
- mov hInstance, eax
-
- invoke WinMain,hInstance,NULL,NULL,SW_SHOWDEFAULT
- invoke ExitProcess,eax
-
- WinMain PROC hInst :DWORD,hPrevInst :DWORD,CmdLine :DWORD,CmdShow :DWORD
-
- LOCAL wc :WNDCLASSEX
- LOCAL msg :MSG
-
- mov wc.cbSize,sizeof WNDCLASSEX
- mov wc.style,CS_HREDRAW or CS_VREDRAW or CS_BYTEALIGNWINDOW
- mov wc.lpfnWndProc,offset WndProc
- mov wc.cbClsExtra,NULL
- mov wc.cbWndExtra,NULL
- push hInst
- pop wc.hInstance
-
- ; --> LOAD BITMAP FROM EXECUTABLE (RESOURCE)
- invoke LoadBitmap,hInst,1000
-
- ; --> USE THAT BITMAP AS WINDOW BACKGROUND
- invoke CreatePatternBrush,eax
- mov wc.hbrBackground,eax
-
- mov wc.lpszMenuName,NULL
- mov wc.lpszClassName,offset ClassName
- mov wc.hIcon,NULL
- invoke LoadCursor,NULL,IDC_ARROW
- mov wc.hCursor,eax
- mov wc.hIconSm,NULL
-
- invoke RegisterClassEx, ADDR wc
-
- ; --> CALCULATE THE MIDDLE OF THE SCREEN FOR OUR WINDOW
- ; 1. get width of the screen
- ; 2. divide it
- ; 3. get the width of our BG-Picture
- ; 4. divide it
- ; 5. horizontal middle = value of step 2 - value of step 4
- ; 6. ... do the same with screen/picture height ...
- invoke GetSystemMetrics,SM_CXSCREEN
- shr eax,1
- sub eax,PictureW/2
- push eax
-
- invoke GetSystemMetrics,SM_CYSCREEN
- shr eax,1
- sub eax,PictureH/2
- pop ebx
-
- ; --> CREATE OUR WINDOW (WITH POPUP STYLE!)
- invoke CreateWindowEx,WS_EX_LEFT,ADDR ClassName,ADDR DisplayName,
- WS_POPUP,ebx,eax,PictureW,PictureH,NULL,NULL,hInst,NULL
- mov hWnd,eax
-
- invoke ShowWindow,eax,SW_SHOWNORMAL
- invoke UpdateWindow,hWnd
-
- _Start:
- invoke GetMessage,ADDR msg,NULL,0,0
- test eax, eax
- jz _Exit
- invoke TranslateMessage,ADDR msg
- invoke DispatchMessage,ADDR msg
- jmp _Start
- _Exit:
-
- mov eax,msg.wParam
- ret
-
- WinMain ENDP
-
- WndProc PROC hWin :DWORD,uMsg :DWORD,wParam :DWORD,lParam :DWORD
-
- .IF uMsg == WM_CREATE
-
- ; --> LOAD REGION_DATA (SEE API REF FOR QUESTIONS)
- invoke FindResource,hInstance,addr RsrcName,addr RsrcType
- mov RsrcHand, eax
-
- invoke LoadResource,hInstance,eax
- mov RsrcPoint, eax
-
- invoke SizeofResource,hInstance,RsrcHand
- mov RsrcSize, eax
-
- invoke LockResource,RsrcPoint
- mov RsrcPoint, eax
-
- ; --> CREATE REGION AND PASS IT TO OUR WINDOW
- invoke ExtCreateRegion,NULL,RsrcSize,eax
- invoke SetWindowRgn,hWin,eax,TRUE
-
- ; --> CREATE A SIMPLE BUTTON
- invoke CreateWindowEx,NULL, ADDR ButtonClassName,ADDR ButtonText,\
- WS_CHILD or WS_VISIBLE or BS_DEFPUSHBUTTON,\
- 178,255,100,25,hWin,ButtonID,hInstance,NULL
- mov hwndButton,eax
-
- .ELSEIF uMsg == WM_COMMAND
- mov eax,wParam
-
- .IF ax == ButtonID
- invoke MessageBox,hWin,addr Text,addr DisplayName,MB_OK
- invoke SendMessage,hWin,WM_DESTROY,NULL,NULL
-
- .ENDIF
-
- .ELSEIF uMsg == WM_LBUTTONDOWN
-
- ; --> MAKE OUR WINDOW THINK THAT THE USER MOVES THE CAPTION_BAR
- invoke SendMessage,hWin,WM_NCLBUTTONDOWN,HTCAPTION,lParam
-
- .ELSEIF uMsg == WM_DESTROY
- invoke PostQuitMessage,NULL
- xor eax,eax
- ret
-
- .ENDIF
-
- invoke DefWindowProc,hWin,uMsg,wParam,lParam
- ret
-
- WndProc ENDP
-
- END start
.386
.model flat, stdcall
option casemap :none
include \MASM32\INCLUDE\windows.inc
include \MASM32\INCLUDE\gdi32.inc
include \MASM32\INCLUDE\user32.inc
include \MASM32\INCLUDE\kernel32.inc
includelib \MASM32\LIB\gdi32.lib
includelib \MASM32\LIB\user32.lib
includelib \MASM32\LIB\kernel32.lib
WinMain PROTO :DWORD,:DWORD,:DWORD,:DWORD
WndProc PROTO :DWORD,:DWORD,:DWORD,:DWORD
.DATA
ClassName db "cws_class",0
DisplayName db "[--BlackWizzard--]",0
Text db "Vous me quittez?",0
ButtonClassName db "button",0
ButtonText db "[-Quitter-]",0
RsrcName db "RANGE",0
RsrcType db "RGN",0
.DATA?
hWnd dd ?
hInstance dd ?
RsrcHand dd ?
RsrcSize dd ?
RsrcPoint dd ?
hwndButton dd ?
.CONST
ButtonID equ 1000
PictureW equ 500
PictureH equ 300
.CODE
start:
invoke GetModuleHandle, NULL
mov hInstance, eax
invoke WinMain,hInstance,NULL,NULL,SW_SHOWDEFAULT
invoke ExitProcess,eax
WinMain PROC hInst :DWORD,hPrevInst :DWORD,CmdLine :DWORD,CmdShow :DWORD
LOCAL wc :WNDCLASSEX
LOCAL msg :MSG
mov wc.cbSize,sizeof WNDCLASSEX
mov wc.style,CS_HREDRAW or CS_VREDRAW or CS_BYTEALIGNWINDOW
mov wc.lpfnWndProc,offset WndProc
mov wc.cbClsExtra,NULL
mov wc.cbWndExtra,NULL
push hInst
pop wc.hInstance
; --> LOAD BITMAP FROM EXECUTABLE (RESOURCE)
invoke LoadBitmap,hInst,1000
; --> USE THAT BITMAP AS WINDOW BACKGROUND
invoke CreatePatternBrush,eax
mov wc.hbrBackground,eax
mov wc.lpszMenuName,NULL
mov wc.lpszClassName,offset ClassName
mov wc.hIcon,NULL
invoke LoadCursor,NULL,IDC_ARROW
mov wc.hCursor,eax
mov wc.hIconSm,NULL
invoke RegisterClassEx, ADDR wc
; --> CALCULATE THE MIDDLE OF THE SCREEN FOR OUR WINDOW
; 1. get width of the screen
; 2. divide it
; 3. get the width of our BG-Picture
; 4. divide it
; 5. horizontal middle = value of step 2 - value of step 4
; 6. ... do the same with screen/picture height ...
invoke GetSystemMetrics,SM_CXSCREEN
shr eax,1
sub eax,PictureW/2
push eax
invoke GetSystemMetrics,SM_CYSCREEN
shr eax,1
sub eax,PictureH/2
pop ebx
; --> CREATE OUR WINDOW (WITH POPUP STYLE!)
invoke CreateWindowEx,WS_EX_LEFT,ADDR ClassName,ADDR DisplayName,
WS_POPUP,ebx,eax,PictureW,PictureH,NULL,NULL,hInst,NULL
mov hWnd,eax
invoke ShowWindow,eax,SW_SHOWNORMAL
invoke UpdateWindow,hWnd
_Start:
invoke GetMessage,ADDR msg,NULL,0,0
test eax, eax
jz _Exit
invoke TranslateMessage,ADDR msg
invoke DispatchMessage,ADDR msg
jmp _Start
_Exit:
mov eax,msg.wParam
ret
WinMain ENDP
WndProc PROC hWin :DWORD,uMsg :DWORD,wParam :DWORD,lParam :DWORD
.IF uMsg == WM_CREATE
; --> LOAD REGION_DATA (SEE API REF FOR QUESTIONS)
invoke FindResource,hInstance,addr RsrcName,addr RsrcType
mov RsrcHand, eax
invoke LoadResource,hInstance,eax
mov RsrcPoint, eax
invoke SizeofResource,hInstance,RsrcHand
mov RsrcSize, eax
invoke LockResource,RsrcPoint
mov RsrcPoint, eax
; --> CREATE REGION AND PASS IT TO OUR WINDOW
invoke ExtCreateRegion,NULL,RsrcSize,eax
invoke SetWindowRgn,hWin,eax,TRUE
; --> CREATE A SIMPLE BUTTON
invoke CreateWindowEx,NULL, ADDR ButtonClassName,ADDR ButtonText,\
WS_CHILD or WS_VISIBLE or BS_DEFPUSHBUTTON,\
178,255,100,25,hWin,ButtonID,hInstance,NULL
mov hwndButton,eax
.ELSEIF uMsg == WM_COMMAND
mov eax,wParam
.IF ax == ButtonID
invoke MessageBox,hWin,addr Text,addr DisplayName,MB_OK
invoke SendMessage,hWin,WM_DESTROY,NULL,NULL
.ENDIF
.ELSEIF uMsg == WM_LBUTTONDOWN
; --> MAKE OUR WINDOW THINK THAT THE USER MOVES THE CAPTION_BAR
invoke SendMessage,hWin,WM_NCLBUTTONDOWN,HTCAPTION,lParam
.ELSEIF uMsg == WM_DESTROY
invoke PostQuitMessage,NULL
xor eax,eax
ret
.ENDIF
invoke DefWindowProc,hWin,uMsg,wParam,lParam
ret
WndProc ENDP
END start
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
WP7 5K BELGIUM CHALLENGEWP7 5K BELGIUM CHALLENGE par junarnoalg
Microsoft Belgique a le plaisir de vous annoncer le lancement du
Challenge Windows Phone 7
. Celui-ci se déroule du 12 juillet au 30 novembre 2010 et vous donne l'opportunit...
Cliquez pour lire la suite de l'article par junarnoalg LES MONADES POUR LES NULSLES MONADES POUR LES NULS par mdufourneaudravel
Avec l'annonce de F#, je me suis intéressé de plus en plus à la programmation fonctionnelle, je suis donc rapidement tombé sur les " monades ", mais malgré la lecture de plusieurs articles, j'étais resté perméable à leur concept. C'est désormais fini, grâ...
Cliquez pour lire la suite de l'article par mdufourneaudravel [WP7] AJOUTER DES IMAGES DANS LA MEDIA LIBRARY D'UN WINDOWS PHONE 7[WP7] AJOUTER DES IMAGES DANS LA MEDIA LIBRARY D'UN WINDOWS PHONE 7 par Audrey
L'émulateur Windows Phone 7, fourni avec la version Beta des outils développeurs n'inclut aucune image dans sa bibliothèque. Pas très pratique de tester son application lorsque l'on souhaite que l'utilisateur puisse choisir une image présente dans le télé...
Cliquez pour lire la suite de l'article par Audrey VIVE LES MOCKS ET LES POCOSVIVE LES MOCKS ET LES POCOS par vLabz
J'observe régulièrement autour de moi de la confusion à propos de ces deux termes et j'aimerais juste rappeler ce qu'ils signifient. Je ne suis bien sûr pas le mieux placé pour faire une leçon mais je vais faire de mon mieux pour mettre en valeur ce q...
Cliquez pour lire la suite de l'article par vLabz [WF4] WORKFLOW AND CUSTOM ACTIVITIES - BEST PRACTICES (4/5)[WF4] WORKFLOW AND CUSTOM ACTIVITIES - BEST PRACTICES (4/5) par JeremyJeanson
Vendredi dernier Microsoft a publié le quatrième épisode des bonnes pratiques pour coder ses activités custom dans WF4 : endpoint.tv - Workflow and Custom Activities - Best Practices (Part 4) . Tout comme pour les précédents épisodes, j'ai pris le temps d...
Cliquez pour lire la suite de l'article par JeremyJeanson
Logiciels
Crystal Report (11)CRYSTAL REPORT (11)Crystal Reports est un outil de reporting souple et puissant, vous pouvez très facilement consult... Cliquez pour télécharger Crystal Report Academy System (12.0.2.0)ACADEMY SYSTEM (12.0.2.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft iPod Vidéo Convertisseur 6 (6.0.3.0419)XILISOFT IPOD VIDéO CONVERTISSEUR 6 (6.0.3.0419)Xilisoft iPod Vidéo Convertisseur est un outil puissant de conversion d'iPod, facile à utiliser. ... Cliquez pour télécharger Xilisoft iPod Vidéo Convertisseur 6 Xilisoft iPhone Vidéo Convertisseur 6 (6.0.3.0419)XILISOFT IPHONE VIDéO CONVERTISSEUR 6 (6.0.3.0419)Xilisoft iPhone Vidéo Convertisseur est le meilleur logiciel de conversion iPhone qui peut facile... Cliquez pour télécharger Xilisoft iPhone Vidéo Convertisseur 6 Xilisoft iPad Vidéo Convertisseur 6 (6.0.3.0419)XILISOFT IPAD VIDéO CONVERTISSEUR 6 (6.0.3.0419)Il s'agit d'un logiciel polyvalent pour convertir les formats vidéo/audio populaires en formats p... Cliquez pour télécharger Xilisoft iPad Vidéo Convertisseur 6
|