.486 .model flat, stdcall ;32 bit memory model option casemap :none ;case sensitive include kgen3.inc .data szFormat db "%4x", 0 .data? szBuffer DWORD ? szName DWORD ? .code start: invoke GetModuleHandle,NULL mov hInstance,eax invoke InitCommonControls invoke DialogBoxParam,hInstance,IDD_DIALOG1,NULL,ADDR DlgProc,NULL invoke ExitProcess,0 ;######################################################################## DlgProc proc hWin:HWND,uMsg:UINT,wParam:WPARAM,lParam:LPARAM mov eax,uMsg .if eax==WM_INITDIALOG .elseif eax==WM_COMMAND mov eax,wParam mov ecx,eax shr ecx,16 .IF cx==BN_CLICKED .IF ax==IDC_BTN1 invoke GetDlgItemText, hWin, IDC_EDT1, addr szName, 512 xor ebx, ebx lea esi, szName @@: movsx ebx, BYTE PTR [esi] add eax, ebx inc esi or ebx, ebx jnz @B invoke wsprintf, addr szBuffer, addr szFormat, eax invoke SetDlgItemText, hWin, IDC_EDT2, addr szBuffer .ENDIF .ENDIF .elseif eax==WM_CLOSE invoke EndDialog,hWin,0 .else mov eax,FALSE ret .endif mov eax,TRUE ret DlgProc endp end start