Использую сабклассированный Edit Control, в своей процедуре
фильтрую символы на соответствие маске 0123456789ABCDEF,
но иногда почему-то при вводе проскакивает таки символ 'f',
то бишь прописной, кто-нибудь с таким сталкивался??
SubclassEditProc2 PROC hEdit:DWORD,uMsg:DWORD,wParam:DWORD,lParam:DWORD
LOCAL pMyCopy:DWORD
.if uMsg == WM_PASTE
invoke GetClipboardText
test eax,eax
jz @F
mov pMyCopy,eax
invoke GlobalLock,pMyCopy
.if eax != 0
invoke ScanString,eax
test eax,eax
jz @F
invoke SendMessage,hEdit,EM_REPLACESEL,0,eax
invoke GlobalUnlock,pMyCopy
.endif
@@:
ret
.elseif uMsg==WM_CHAR
invoke GetAsyncKeyState, VK_CONTROL
.if !( eax && 80000000h )
mov eax, wParam
.if (al>="0" && al<="9") || (al>="A" && al<="F") || (al>="a" && al<="f") || al==VK_BACK
.if al>="a" && al<="f"
sub al,20h
.endif
invoke CallWindowProc,OldEditProc2,hEdit,uMsg,eax,lParam
ret
.endif
xor eax,eax
ret
.endif
.endif