add: added template file
This commit is contained in:
commit
6c066b18d0
1 changed files with 133 additions and 0 deletions
133
dir.asm
Normal file
133
dir.asm
Normal file
|
@ -0,0 +1,133 @@
|
|||
.386
|
||||
.model flat,stdcall
|
||||
option casemap:none
|
||||
|
||||
WinMain proto :DWORD
|
||||
|
||||
include c:\masm32\include\windows.inc
|
||||
include c:\masm32\include\gdi32.inc
|
||||
include c:\masm32\include\gdiplus.inc
|
||||
include c:\masm32\include\user32.inc
|
||||
include c:\masm32\include\kernel32.inc
|
||||
|
||||
includelib c:\masm32\lib\kernel32.lib
|
||||
includelib c:\masm32\lib\gdi32.lib
|
||||
includelib c:\masm32\lib\user32.lib
|
||||
|
||||
RGB macro red,green,blue
|
||||
xor eax,eax
|
||||
mov ah,blue
|
||||
shl eax,8
|
||||
mov ah,green
|
||||
mov al,red
|
||||
endm
|
||||
|
||||
.DATA
|
||||
ClassName db "SimpleWinClass",0
|
||||
AppName db "Our First Window",0
|
||||
GlobX DWORD 10
|
||||
Delta DWORD 8
|
||||
|
||||
.DATA?
|
||||
hInstance HINSTANCE ?
|
||||
|
||||
.CODE
|
||||
start:
|
||||
invoke GetModuleHandle, NULL
|
||||
mov hInstance,eax
|
||||
invoke WinMain, hInstance;, NULL, NULL, SW_SHOWDEFAULT
|
||||
|
||||
invoke ExitProcess,eax
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Fonction principale
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
WinMain proc hInst:HINSTANCE;, hPrevInst:HINSTANCE, CmdLine:LPSTR, CmdShow:DWORD
|
||||
LOCAL wc:WNDCLASSEX
|
||||
LOCAL msg:MSG
|
||||
LOCAL hwnd:HWND
|
||||
mov wc.cbSize,SIZEOF WNDCLASSEX
|
||||
mov wc.style, CS_HREDRAW or CS_VREDRAW
|
||||
mov wc.lpfnWndProc, OFFSET WndProc
|
||||
mov wc.cbClsExtra,NULL
|
||||
mov wc.cbWndExtra,NULL
|
||||
push hInst
|
||||
pop wc.hInstance
|
||||
mov wc.hbrBackground,COLOR_WINDOW+1
|
||||
mov wc.lpszMenuName,NULL
|
||||
mov wc.lpszClassName,OFFSET ClassName
|
||||
invoke LoadIcon,NULL,IDI_APPLICATION
|
||||
mov wc.hIcon,eax
|
||||
mov wc.hIconSm,eax
|
||||
invoke LoadCursor,NULL,IDC_ARROW
|
||||
mov wc.hCursor,eax
|
||||
invoke RegisterClassEx, addr wc
|
||||
invoke CreateWindowEx,NULL,ADDR ClassName,ADDR AppName,\
|
||||
WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,\
|
||||
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,\
|
||||
hInst,NULL
|
||||
mov hwnd,eax
|
||||
invoke ShowWindow, hwnd,SW_SHOWNORMAL
|
||||
invoke UpdateWindow, hwnd
|
||||
|
||||
; boucle de gestion des evenements
|
||||
main_loop:
|
||||
invoke GetMessage, ADDR msg,NULL,0,0
|
||||
cmp eax, 0
|
||||
je end_loop
|
||||
invoke TranslateMessage, ADDR msg
|
||||
invoke DispatchMessage, ADDR msg
|
||||
jmp main_loop
|
||||
end_loop:
|
||||
mov eax, msg.wParam
|
||||
ret
|
||||
|
||||
WinMain endp
|
||||
|
||||
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
;; Fonction appelée à chaque evenement
|
||||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM
|
||||
LOCAL ps:PAINTSTRUCT
|
||||
LOCAL rect:RECT
|
||||
LOCAL hdc:HDC
|
||||
|
||||
; switch WM events
|
||||
mov eax, uMsg
|
||||
; WM_DESTROY event
|
||||
cmp eax, WM_DESTROY
|
||||
jne evt_not_destroy
|
||||
invoke PostQuitMessage,NULL
|
||||
jmp evt_switch_end
|
||||
evt_not_destroy:
|
||||
; WM_PAINT event
|
||||
cmp eax, WM_PAINT
|
||||
jne evt_not_paint
|
||||
invoke BeginPaint,hWnd, ADDR ps
|
||||
mov hdc,eax
|
||||
invoke GetClientRect,hWnd, ADDR rect
|
||||
|
||||
; code de dessin
|
||||
|
||||
invoke EndPaint,hWnd, ADDR ps
|
||||
jmp evt_switch_end
|
||||
evt_not_paint:
|
||||
; WM_CHAR event
|
||||
cmp eax, WM_CHAR
|
||||
jne evt_not_char
|
||||
|
||||
; gestion des evenements clavier
|
||||
; le caractere recu est dans wParam
|
||||
|
||||
jmp evt_switch_end
|
||||
evt_not_char:
|
||||
; By default call DefWindowProc
|
||||
invoke DefWindowProc,hWnd,uMsg,wParam,lParam
|
||||
ret
|
||||
evt_switch_end:
|
||||
xor eax, eax
|
||||
ret
|
||||
WndProc endp
|
||||
|
||||
end start
|
Loading…
Add table
Add a link
Reference in a new issue