essageA, offset msg, 0, 0, 0; зчитує повідомлення
; черги повідомлень
; прикладної задачі
99 .. if eax! = 0
100. call DispatchMessageA, offset msg; передає повідомлення
; віконноїпроцедурі
101. call TranslateMessage, offset msg
102. jmp msg_loop
103. ;. Endif
104. call ExitProcess, [msg.msWPARAM];
105. ; *************************************************
106. ; Віконна процедура
107. ; ************************************************* *
108. WndProc proc uses ebx edi esi, hwnd: DWORD, wmsg: DWORD,
109. wparam: DWORD, lparam: DWORD
110. LOCAL hDC: DWORD
111. cmp [wmsg], WM_DESTROY; надсилається віконної процедури відразу
; ж після закриття вікна
112. je wmdestroy
113. cmp [wmsg], WM_SIZE; надсилається віконної процедури після того,
; як змінився розмір вікна
114. je wmsize
115. cmp [wmsg], WM_CREATE; передача віконної процедури нового
; вікна після того, як вікно створене,
; але перш ніж вікно стало видимим
116. je wmcreate
117. cmp [wmsg], WM_PAINT; забезпечують перемальовування вікна, коли
; частину або вся робоча область вікна
; стає недійсною
118. je wmpaint
119. cmp [wmsg], WM_VSCROLL;
120. je wmscroll
121. jmp defwndproc
122. wmcreate:
123. call GetDC, [hwnd]; дескриптор контекстного пристрої
124. mov [hDC], eax
125. call GetTextMetricsA, [hDC], offset tm
126. mov ebx, 0
127. mov bx, [tm.tmExtLeading]; межстрочное відстань
128. add bx, [tm.tmHeight]; висота (добавка до координаті рядка)
129. mov [charht], ebx
130. call ReleaseDC, [hwnd], [hDC]; відмова від контекстного пристрої
131. mov eax, 0
132. jmp finish
133. defwndproc:
134. call DefWindowProcA, [hwnd], [wmsg], [wparam], [lparam]
135. jmp finish
136. wmscroll:
137. call GetClientRect, [hwnd], offset rc; визначення клієнтської
; області вікна
138. movzx eax, [word ptr wparam]; перетворення вмісту wparam в
; подвійне слово
139. cmp eax, SB_LINEDOWN; клацання миші на стрілкою вниз,
; призводить до прокручування на один рядок
; вниз
140. je sblinedown
141. cmp eax, SB_LINEUP; клацання миші на стрілкою вгору,
; призводить до прокручування на один рядок
; вгору
142. je sblineup
143. cmp eax, SB_ENDSCROLL; відпускання будь-якого органу управління
; відпущена клавіша миші після
; утримування її на смузі прокрутки
144. je bp3
145. sblinedown:
146. mov [cyStep], 1; додати крок
147. jmp endvscroll_1
148. sblineup:
149. mov [cyStep], -1
150. jmp endvscro...