Ассемблер для Windows



         

Глава Экскурс в битное программирование - часть 4


; процедура для заданного класса окон ; WINDOWS передает в эту процедуру параметры: ; HWND - дескриптор (номер) окна, тип WORD ; MES - номер сообщения, тип WORD ; WPARAM - дополнительная информация, тип WORD ; LPARAM - дополнительная информация, тип DWORD WNDPROC PROC PUSH BP MOV BP,SP MOV AX, [BP+0CH] ; MES - номер сообщения CMP AX, 2 ; не сообщение ли о закрытии WM_DESTROY JNZ NEXT ; передать сообщение о закрытии приложения, ; это сообщение будет принято в цикле ожидания, ; и т.о. приложение завершит свой путь PUSH 0 CALL POSTQUITMESSAGE JMP _QUIT NEXT: ; передать сообщение дальше WINDOWS ; своего рода правило вежливости — то, ; что не обработано процедурой обработки, ; предоставляется для обработки WINDOWS PUSH [BP+0EH] ; HWND PUSH [BP+0CH] ; MES - номер сообщения PUSH [BP+0AH] ; WPARAM PUSH [BP+8] ; HIGHWORD LPARAM PUSH [BP+6] ; LOWWORD LPARAM CALL DEFWINDOWPROC ;************************************************************ _QUIT: POP BP ; вызов процедуры окна всегда дальний, поэтому RETF RETF 10 ; освобождаем стек от параметров WNDPROC ENDP CODE ENDS END _BEGIN




Содержание  Назад  Вперед