Почти всё выкинул, кроме создания окна и постановки точки. (Делал в masm'е так что откомпилируется без приключений)
.686P
.XMM
.MODEL FLAT, stdcall
option casemap:none
; константы
; сообщение приходит при закрытии окна
WM_DESTROY        equ 2 
; сообщение приходит при создании окна
WM_CREATE         equ 1
; сообщение при щелчке левой кнопкой мыши в области окна 
WM_LBUTTONDOWN    equ 201h
; сообщение при щелчке правой кнопкой мыши в области окна 
WM_RBUTTONDOWN    equ 204h 
; свойства окна 
CS_NOCLOSE        equ 1h 
CS_VREDRAW        equ 1h 
CS_HREDRAW        equ 2h 
CS_GLOBALCLASS    equ 4000h 
WS_OVERLAPPEDWINDOW    equ 000CF0000H 
style equ CS_HREDRAW+CS_VREDRAW+CS_GLOBALCLASS
; идентификатор стандартной иконки
IDI_APPLICATION   equ 32512 
; идентификатор курсора 
IDC_CROSS         equ 32515
; режим показа окна - нормальный 
SW_SHOWNORMAL     equ 1
STYLBTN    equ WS_CHILD+BS_DEFPUSHBUTTON+WS_VISIBLE+WS_TABSTOP
STYLEDT    equ WS_CHILD+WS_VISIBLE+WS_BORDER+WS_TABSTOP
;Сообщение приходит при  перерисовке окна.
WM_PAINT        equ 0Fh
;Сообщение, позволяющее послать элементу строку.
WM_SETTEXT	    equ 0Ch
WS_CHILD            equ 40000000h
BS_DEFPUSHBUTTON    equ 1h
WS_VISIBLE          equ 10000000h
WS_TABSTOP	    equ 10000h
WS_BORDER           equ 800000h
;Компоненты цветов.
RED                 equ 50
GREEN               equ 50
BLUE                equ 255
RGBW equ 0 ; Цвет окна - чёрный   RGBW equ (RED or (GREEN shl 8)) or (BLUE shl 16)
RGBT                equ 255 ;Красный.
RGBP equ 17
RGBR equ 150 ;Цвет региона.
; прототипы внешних процедур
EXTERN GetModuleHandleA@4:NEAR
EXTERN GetStdHandle@4:NEAR
EXTERN LoadCursorA@8:NEAR
EXTERN LoadIconA@8:NEAR
EXTERN RegisterClassA@4:NEAR
EXTERN MessageBoxA@16: NEAR
EXTERN DefWindowProcA@16:NEAR
EXTERN PostQuitMessage@4:NEAR
EXTERN CreateWindowExA@48:NEAR
EXTERN ShowWindow@8:NEAR
EXTERN UpdateWindow@4:NEAR
EXTERN GetMessageA@16:NEAR
EXTERN TranslateMessage@4:NEAR
EXTERN DispatchMessageA@4:NEAR
EXTERN SendMessageA@16:NEAR
EXTERN SetFocus@4:NEAR
EXTERN GetDC@4:NEAR
EXTERN ReleaseDC@8:NEAR
EXTERN CreateCompatibleDC@4:NEAR
EXTERN GetSystemMetrics@4:NEAR
EXTERN CreateCompatibleBitmap@12:NEAR
EXTERN SelectObject@8:NEAR
EXTERN PatBlt@24:NEAR
EXTERN BitBlt@36:NEAR
EXTERN CreatePen@12:NEAR
EXTERN SetPixel@16:NEAR
EXTERN Rectangle@20:NEAR
EXTERN InvalidateRect@12:NEAR
EXTERN CreateSolidBrush@4:NEAR
EXTERN BeginPaint@8:NEAR
EXTERN EndPaint@8:NEAR
EXTERN SetBkColor@8:NEAR
EXTERN SetTextColor@8:NEAR
EXTERN TextOutA@20:NEAR ; Вывод текста в окно по координатам
EXTERN ExitProcess@4:NEAR
EXTERN GetCommandLineA@0:NEAR
; директивы компоновщику для подключения библиотек
includelib e:\masm32\lib\user32.lib
includelib e:\masm32\lib\kernel32.lib
includelib e:\masm32\lib\gdi32.lib
;include e:\masm32\include\windows.inc
include E:\masm32\include\kernel32.inc
include E:\masm32\include\gdi32.inc
;--------------------------------------------------------------
; СТРУКТУРЫ
 
; структура сообщения
MSGSTRUCT STRUC
     MSHWND        DD   ? ; идентификатор окна,
                          ; получающего сообщение
     MSMESSAGE     DD   ? ; идентификатор сообщения
     MSWPARAM      DD   ? ; доп. информация о сообщении
     MSLPARAM      DD   ? ; доп. информация о сообщении
     MSTIME        DD   ? ; время посылки сообщения
     MSPT          DD   ? ; положение курсора, во время посылки
                          ; сообщения
MSGSTRUCT ENDS
;---------
WNDCLASS STRUC
     CLSSTYLE      DD   ? ; стиль окна
     CLWNDPROC     DD   ? ; указатель на процедуру окна
     CLSCEXTRA     DD   ? ; информация о доп. байтах для
                          ; данной структуры
     CLWNDEXTRA    DD   ? ; информация о доп. байтах для окна
     CLSHINSTANCE  DD   ? ; дескриптор приложения
     CLSHICON      DD   ? ; идентификатор иконы окна
     CLSHCURSOR    DD   ? ; идентификатор курсора окна
     CLBKGROUND    DD   ? ; идентификатор кисти окна
     CLMENUNAME    DD   ? ; имя-идентификатор меню
     CLNAME        DD   ? ; специфицирует имя класса окон
WNDCLASS ENDS
;--------------------------------------------------------------
PAINTSTR  STRUC
    hdc     DWORD 0 
    fErase  DWORD 0
    left    DWORD 0
    top     DWORD 0
    right   DWORD 0
    bottom  DWORD 0
    fRes    DWORD 0
    fIncUp  DWORD 0
    Reserv DB 32 dup(0)
PAINTSTR  ENDS
;--------------------------------------------------------------
SIZET	STRUC 
X1	DWORD ?
Y1	DWORD ?
SIZET	ENDS
;--------------------------------------------------------------
RECT	STRUC 
L	DWORD ?  ;X - левого верхнего угла.
T	DWORD ?  ;Y - левого верхнего угла.
R	DWORD ?  ;Х - правого нижнего угла.
B	DWORD ?  ;Y - правого нижнего угла.
RECT	ENDS
;--------------------------------------------------------------
;СЕГМЕНТ ДАННЫХ
_DATA SEGMENT
MyMainWindowHandle DD 0
MSG	MSGSTRUCT <?>
WC	WNDCLASS <?>
PNT	PAINTSTR <?>
SZT	SIZET <?>
RCT	RECT <?>
TITLENAME DB 'HAMMER',0
CLASSNAME DB 'CLASS32',0
CAP	DB 'Сообщение',0
; Окно редактирования
CLSEDIT DB 'EDIT',0
HINST	DWORD ?
XT	DWORD 5
YT	DWORD 1630
XP	DWORD ?
YP	DWORD ?
XM	DWORD ?
YM	DWORD ?
HDC	DWORD ? ; Контекст
HPEN	DWORD ?
HBRUSH	DWORD ?
_DATA ENDS
;сегмент кода
_TEXT SEGMENT 
Start:
; получить дескриптор приложения
	push 0
	call GetModuleHandleA@4
	mov HINST,eax
	push edi
	push esi
;----------------------------------------------------------
; ЗАПОЛНИТЬ СТРУКТУРУ ОКНА
;----------------------------------------------------------
; стиль
	mov [WC.CLSSTYLE], style
; процедура обработки сообщений
	mov [WC.CLWNDPROC],OFFSET WNDPROC
	mov [WC.CLSCEXTRA],0
	mov [WC.CLWNDEXTRA],0
	mov eax,[HINST]
	mov [WC.CLSHINSTANCE],eax
;--------- иконка окна
	push IDI_APPLICATION
	push 0
	call LoadIconA@8
	mov [WC.CLSHICON],eax
;---------- курсор окна
	push IDC_CROSS
	push 0
	call LoadCursorA@8
	mov [WC.CLSHCURSOR],eax
;---------
	push RGBW ;Цвет кисти.
	call CreateSolidBrush@4 ;Создать кисть.
;---------
	mov [WC.CLBKGROUND],0 ; цвет окна чёрный
	mov DWORD ptr [WC.CLMENUNAME],0
	mov DWORD ptr [WC.CLNAME],OFFSET CLASSNAME
	push OFFSET WC
	call RegisterClassA@4
; создать окно зарегистрированного класса
	push 0
	push [HINST]
	push 0
	push 0
	push 1680 ; DY — высота окна
	push 1050 ; DX - ширина окна
	push 0 ; Y — координата левого верхнего угла
	push 0 ; X — координата левого верхнего угла
	push WS_OVERLAPPEDWINDOW or WS_VISIBLE
	push OFFSET TITLENAME ; имя окна
	push OFFSET CLASSNAME ; имя класса
	push 0
	call CreateWindowExA@48
	cmp eax,0 ; Проверка на ошибку
	jz _ERR
	mov MyMainWindowHandle,eax ; Дескриптор окна
; петля обработки сообщений
MSG_LOOP:
	push 0
	push 0
	push 0
	push OFFSET MSG
	call GetMessageA@16
	cmp eax,0
	je END_LOOP
	push OFFSET MSG
	call TranslateMessage@4
	push OFFSET MSG
	call DispatchMessageA@4
	jmp MSG_LOOP
END_LOOP:
; выход из программы (закрыть процесс)
	push [MSG.MSWPARAM]
	pop esi
	pop edi
	invoke ExitProcess, 0
_ERR:
	jmp END_LOOP
; --------------------------------------------------
; процедура окна 
; расположение параметров в стеке
; [EBP+014H] LPARAM
; [EBP+10H] WAPARAM
; [EBP+0CH] MES
; [EBP+8] MyMainWindowHandle
WNDPROC proc
	push ebp
	mov ebp,esp
	push ebx
	push esi
	push edi
	cmp DWORD ptr [EBP+0CH],WM_DESTROY
	je WMDESTROY
	cmp DWORD ptr [EBP+0CH],WM_CREATE
	je WMCREATE
;	cmp DWORD ptr [EBP+0CH],WM_PAINT
;	je WMPAINT
	jmp DEFWNDPROC
WMPAINT:
	mov eax,0
	jmp FINISH
WMCREATE:
;Открыть контекст окна.
	push [MyMainWindowHandle] ;PUSH DWORD PTR [EBP+08H]
	call GetDC@4
	mov HDC,eax
;Точка
	mov YP,200 ;Y
	mov XP,200 ;X
	push 255; RGBP
	push YP
	push XP
	push HDC
	call SetPixel@16
;Точка ещё
	mov YP,200 ;Y
	mov XP,202 ;X
	push 17 ;RGBP
	push YP
	push XP
	push HDC
	call SetPixel@16
;Дать команду перерисовать окно.
	push 0
	push OFFSET RECT
	push DWORD ptr [EBP+08H]
	call InvalidateRect@12
;Удалить контекст.
	push HDC
	push DWORD ptr [EBP+08H]
	call ReleaseDC@8
	mov eax,0
	jmp FINISH
DEFWNDPROC:
	push DWORD ptr [EBP+14H]
	push DWORD ptr [EBP+10H]
	push DWORD ptr [EBP+0CH]
	push DWORD ptr [EBP+08H]
	call DefWindowProcA@16
	jmp FINISH
WMDESTROY:
	push 0
	call PostQuitMessage@4 ; сообщение WM_QUIT
	mov eax,0
FINISH:
	pop edi
	pop esi
	pop ebx
	pop ebp
	ret 16
WNDPROC endp
_TEXT ends
end Start
Чего я забыл ?