Я тут отрубился от беседы ;-)
Можно, даже лучше, так:
.486
.model flat, stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
includelib kernel32.lib
includelib user32.lib
.DATA
WindowText db 'Калькулятор',0
ButtonText db 'Hex',0
.CODE
ALIGN DWORD
EnumChildWindowsFunc proc hwnd, lParam
LOCAL Buff[64]:CHAR
invoke GetWindowText, hwnd, ADDR Buff, 64
invoke lstrcmpi, OFFSET ButtonText, ADDR Buff
.IF eax==0
invoke ShowWindow, hwnd, SW_HIDE
xor eax, eax
.ELSE
xor eax, eax
inc eax
.ENDIF
ret
EnumChildWindowsFunc endp
ALIGN DWORD
EnumWindowsFunc proc hwnd, lParam
LOCAL Buff[256]:CHAR
invoke GetWindowText, hwnd, ADDR Buff, 256
invoke lstrcmpi, OFFSET WindowText, ADDR Buff
.IF eax==0
invoke EnumChildWindows, hwnd, OFFSET EnumChildWindowsFunc, 0
xor eax, eax
.ELSE
xor eax, eax
inc eax
.ENDIF
ret
EnumWindowsFunc endp
ALIGN DWORD
start:
invoke EnumWindows, OFFSET EnumWindowsFunc, 0
invoke ExitProcess, 0
end start