:laughs:
The manner of questioning failed both here:
Why this code is not showing the button? [on hold] and here:
How to create a button using nasm? [on hold]
If all you're trying to do is create a button on a window, chuck all of this in a bin and use the DialogBoxIndirectParam function. If you've loftier ambitions, you should say so in the question to avoid the chance that you present what's known as an X/Y problem. (Whereby you present a problem X, which you believe to be the solution to the unmentioned problem Y, when in fact having the solution to X in no way helps you to achieve Y)
Using DualogBoxIndirectParam will afford you the ability to write a main (using masm syntax in this example) as simple as this:
WinMainCRTStartup:
invoke EnableVisualStyles
invoke DialogBoxIndirectParam, 0, addr dlgTplt, 0, addr DlgProc, 0
invoke ExitProcess,NULL
Even then, the visual styles stuff is optional. The trickiest bit is the format of the CDLGTEMPLATE (dlgTplt) structure, since it requires individual parts to be aligned, which is dead easy in asm and a pain in C. But as you can likely see, there's no need to bother with Registering a class or creating a window yourself. Windows uses the default DIALOG class, standard common controls and even creates them all for you - you just have to chuck it the right chunk of data to create them all from.
For reference, here's the dlgTplt data referenced above.
dlgTplt DLGTEMPLATE <DS_3DLOOK or DS_CENTER or DS_SETFONT or WS_CAPTION or WS_VISIBLE or WS_GROUP or WS_SYSMENU, 0, 8, 0, 0, 509, 174>
align 2
dw 0
dw '2','k','S','y','n','t','h',0
dw 8, 'T','a','h','o','m','a',0
; test Button
; PUSHBUTTON "&Test", IDC_BTN_TEST, 176, 288, 40, 32
align 4
DLGITEMTEMPLATE <WS_VISIBLE + WS_CHILD + BS_PUSHBUTTON + WS_TABSTOP, 0, 176,133, 40,32, IDC_BTN_TEST>
align 2
dw WC_BUTTON
dw '&','T','e','s','t',0
dw 0
; PUSHBUTTON "&Quit", IDC_BTN_QUIT, 453, 293, 46, 20
align 4
DLGITEMTEMPLATE <WS_VISIBLE + WS_CHILD + BS_PUSHBUTTON + WS_TABSTOP, 0, 453,138, 46,20, IDC_BTN_QUIT>
align 2
dw WC_BUTTON
dw '&','Q','u','i','t',0
dw 0
; CONTROL "", IDC_WAVIMG, WC_STATIC, SS_BITMAP, 7, 8, 613, 251, WS_EX_CLIENTEDGE
align 4
DLGITEMTEMPLATE <WS_VISIBLE + WS_CHILD + SS_BITMAP, WS_EX_CLIENTEDGE, 7,8, 492,100, IDC_WAV_IMG>
align 2
dw WC_STATIC
dw 0;'B','t','n',0
dw 0
; CONTROL "", IDC_NOTE_SLIDE, TRACKBAR_CLASS, WS_TABSTOP | TBS_BOTH | TBS_NOTICKS, 35, 270, 131, 15
align 4
DLGITEMTEMPLATE<WS_VISIBLE + WS_CHILD + WS_TABSTOP + TBS_BOTH + TBS_NOTICKS, 0, 35, 115, 131, 15, IDC_NOTE_SLIDE>
align 2
dw WC_TRACKBAR
dw 0
dw 0
; LTEXT "Note:", IDC_STATIC, 9, 273, 19, 8, SS_LEFT
align 4
DLGITEMTEMPLATE<WS_VISIBLE + WS_CHILD + SS_LEFT, 0, 9, 118, 19, 8, -1>
align 2
dw WC_STATIC ; -1, 0082h ; Static text
dw 'N','o','t','e',0
dw 0
; EDITTEXT IDC_NOTE_EDIT, 176, 270, 40, 14, ES_AUTOHSCROLL
align 4
DLGITEMTEMPLATE<WS_VISIBLE or WS_CHILD or WS_TABSTOP or WS_BORDER or ES_AUTOHSCROLL, 0, 176, 115, 40, 14, IDC_NOTE_EDIT>
align 2
dw WC_EDIT ; edit control
dw 0
dw 0
; COMBOBOX IDC_COMBO1, 64, 295, 96, 30, CBS_DROPDOWN | CBS_HASSTRINGS
align 4
DLGITEMTEMPLATE<WS_VISIBLE or WS_CHILD or CBS_DROPDOWN or CBS_HASSTRINGS, 0, 64, 140, 96, 72, IDC_COMBO1>
align 2
dw WC_COMBO ; combo box
dw 0
dw 0
; LTEXT "Instrument:", IDC_STATIC, 9, 298, 39, 8, SS_LEFT
align 4
DLGITEMTEMPLATE<WS_VISIBLE + WS_CHILD + SS_LEFT, 0, 9, 143, 39, 8, -1>
align 2
dw WC_STATIC ;-1, 0082h ; Static text
dw 'I','n','s','t','r','u','m','e','n','t',0
dw 0