Программа демонстрирующая иерархию окон WindowsРефераты >> Программирование и компьютеры >> Программа демонстрирующая иерархию окон Windows
push L CW_USEDEFAULT ; width
push L CW_USEDEFAULT ; y
push L CW_USEDEFAULT ; x
push L WS_OVERLAPPEDWINDOW ; Style
push offset szTitleName1 ; Title string
push offset szClassName ; Class name
push L 0 ; extra style
call CreateWindowExA
mov [new1hwnd], eax
push L SW_SHOWNORMAL
push [new1hwnd]
call ShowWindow
push [new1hwnd]
call UpdateWindow
msg_loop:
push L 0
push L 0
push L 0
push offset msg
call GetMessageA
cmp ax, 0
je end_loop
push offset msg
call TranslateMessage
push offset msg
call DispatchMessageA
jmp msg_loop
end_loop:
push [msg.msWPARAM]
call ExitProcess
; we never get to here
;оконная процедура
;-----------------------------------------------------------------------------
WndProc proc uses ebx edi esi, hwnd:DWORD, wmsg:DWORD,\
wparam:DWORD, lparam:DWORD
;
; WARNING: Win32 requires that EBX, EDI, and ESI be preserved! We comply
; with this by listing those regs after the 'uses' statement in the 'proc'
; line. This allows the Assembler to save them for us.
;
LOCAL hDC:DWORD
cmp [wmsg], WM_DESTROY
je wmdestroy
cmp [wmsg], WM_SIZE
je wmsize
cmp [wmsg], WM_CREATE
je wmcreate
cmp [wmsg],WM_PAINT
je wmpaint
jmp defwndproc
wmcreate:
mov eax, 0
jmp finish
defwndproc:
push [lparam]
push [wparam]
push [wmsg]
push [hwnd]
call DefWindowProcA
jmp finish
wmdestroy:
push L 0
call PostQuitMessage
mov eax, 0
jmp finish
wmsize:
mov eax, 0
jmp finish
wmpaint:
push offset lppaint
push [hwnd]
call BeginPaint
mov [hDC],eax
push L 17
; push ecx
push offset Buffer
push L 5
push L 5
push [hDC]
call TextOutA
push offset lppaint
push [hwnd]
call EndPaint
mov eax,0
jmp finish
finish:
ret
WndProc endp
;-----------------------------------------------------------------------------
public WndProc
end start
Библиографический список
1. Использование Turbo Assembler при разработке программ / Составитель А.А. Чекатков. Киев: Диалектика, 1995.
2. Рихтер Д. Windows для профессионалов ( программирование в Win32 API для Windows
NT 3.5 и Windows 95) пер. С англ. М.: Издательский отдел «Русский Редакция» ТОО «Channel Trading Ltd», 1995.
3. Зубков С.В. Assembler. Для DOS, Windows и Unix. М. : ДМК. 1999.