mov wc.hIcon,eax
: j" W* ?: @3 O" T" z mov wc.hIconSm,eax
5 b" k: ?- A; ^; \7 \* r! @# M! u invoke LoadCursor,NULL,IDC_ARROW
* V. ?! U0 Z% k8 ]+ y; j mov wc.hCursor,eax
- ?$ W$ q6 C2 @5 k! p invoke RegisterClassEx, addr wc, s. ]0 ^, y8 m8 p& T2 f
invoke CreateWindowEx,WS_EX_CLIENTEDGE,ADDR ClassName,ADDR AppName,\ WS_OVERLAPPED+WS_CAPTION+WS_SYSMENU+WS_MINIMIZEBOX+WS_MAXIMIZEBOX+WS_VISIBLE,CW_USEDEFAULT,\
: U$ J5 L& h7 n- A+ _ CW_USEDEFAULT,350,200,NULL,NULL,\
( g3 |5 J- Z" g h6 t hInst,NULL' a' M5 s& ^5 V- [
mov hwnd,eax
- q+ \. d. B8 _8 L+ w! y) I! o .while TRUE
3 g5 n5 y5 k% h3 z$ f2 H invoke GetMessage, ADDR msg,NULL,0,0, ^( P! B- r, [& a$ \3 _
.BREAK .IF (!eax)
R1 r# l) \+ t% d invoke TranslateMessage, ADDR msg
: o3 ^8 ^! l" c$ |% q7 K invoke DispatchMessage, ADDR msg
2 z. o7 F3 P4 } .endw# a* t- F% Y# D' P
mov eax,msg.wParam+ q- }5 v+ J' F4 N: B, _3 O9 N E
ret
7 P% h6 F% p$ Q9 s WinMain endp </p>
! M' l9 R6 a- D- ]/ Y! b WndProc proc hWnd:HWND, uMsg:UINT, wParam:WPARAM, lParam:LPARAM1 v! ]- \6 V _" W2 v4 K/ m
.if uMsg==WM_CREATE
: H) F# |6 | Z, P) h6 Q+ b invoke CreateWindowEx,WS_EX_CLIENTEDGE,ADDR EditClass,NULL,\
/ B2 k7 w, g) \$ t) y) m' a; f4 q; V WS_CHILD+WS_VISIBLE+WS_BORDER,20,\, |. x# Z* Q3 t/ d& L
20,300,25,hWnd,NULL,\
3 a& S w0 ?$ h) U: Q$ N: t hInstance,NULL, v& C$ s. r# Q8 a( m
mov hwndEdit,eax/ i0 l3 y, M$ p
invoke SetFocus,eax
+ X6 E/ s) W4 i/ Q1 P ;-----------------------------------------
9 ^, M: }' @! m ; Subclass it!
# ~: ^' k, b% E; ? ;-----------------------------------------
( l* B/ f& L, q" ` invoke SetWindowLong,hwndEdit,GWL_WNDPROC,addr EditWndProc* d3 v7 l2 E$ y! [, \6 Q' p# T
mov OldWndProc,eax8 X8 s% t3 v8 X: V$ O/ j
.elseif uMsg==WM_DESTROY/ F0 h/ o' P3 R( Z: M1 I5 a7 P
invoke PostQuitMessage,NULL2 l5 @2 Y! t9 [! a4 U
.else
" m: p, P+ G. t" H; C$ v# _ invoke DefWindowProc,hWnd,uMsg,wParam,lParam
6 h( j5 o4 o0 a ret; g- L* z& N# ]* G( z0 ?) _
.endif
/ } S. P. b" m- m8 Q xor eax,eax
# c0 f/ ~1 x+ C5 N( h ret: O& K& S7 H5 D, [
WndProc endp8 ?' p. d \! R+ J8 J5 f9 u+ B/ g
EditWndProc PROC hEdit:DWORD,uMsg:DWORD,wParam:DWORD,lParam:DWORD+ s4 \) F+ Q6 O
.if uMsg==WM_CHAR6 n; Y% V6 d; V a* f: _5 m' N
mov eax,wParam% G# g9 `4 _9 _1 g9 F6 D$ A
.if (al>="0" && al="A" && al="a" && al="a" && al="0" && al="A" && al="a" && al="a" && al |