.if uMsg==WM_PAINT
invoke BeginPaint,hWnd,addr pnt
mov context,eax
invoke SetBkColor,eax,BACK_COLOR
invoke SetTextColor,context,00102090h
invoke TextOut,context,25,10,$CTA0("р56рр56"),2h
invoke TextOut,context,200,10,$CTA0("р5р5665р"),4h
invoke TextOut,context,10,100,$CTA0("Текст:"),0Ah
invoke TextOut,context,330,70,$CTA0("Пишем что-то:"),12h
invoke EndPaint,hWnd,addr pnt
.endif
Как удалить текст из окна?
Код:
При нажатии на определённую кнопку надо его стереть:
Т.е. WM_COMMAND...
Стираю вот так:
Код:
invoke GetWindowRect,hWnd,addr rct
mov eax,rct.bottom
sub eax,rct.top
mov rct.bottom,eax
mov eax,rct.right
sub eax,rct.left
mov rct.right,eax
mov rct.top,0h
mov rct.left,0h
invoke CreateWindowEx,WS_EX_TRANSPARENT,$CTA0("STATIC"),0h,WS_VISIBLE or WS_CHILD,0,0,rct.right,rct.bottom,hWnd,0,hInstance,0
invoke DestroyWindow,eax
mov eax,rct.bottom
sub eax,rct.top
mov rct.bottom,eax
mov eax,rct.right
sub eax,rct.left
mov rct.right,eax
mov rct.top,0h
mov rct.left,0h
invoke CreateWindowEx,WS_EX_TRANSPARENT,$CTA0("STATIC"),0h,WS_VISIBLE or WS_CHILD,0,0,rct.right,rct.bottom,hWnd,0,hInstance,0
invoke DestroyWindow,eax
Но это какой-то очень стрёмный способ!!!
Мне кажется закрасить его бы... по логике так, но:
Вот так, например, текст не стирается:
Код:
invoke GetWindowRect,hWnd,addr rct
mov eax,rct.bottom
sub eax,rct.top
mov rct.bottom,eax
mov eax,rct.right
sub eax,rct.left
mov rct.right,eax
mov rct.top,0h
mov rct.left,0h
invoke BeginPaint,hWnd,addr pnt
mov context,eax
invoke CreateSolidBrush,BACK_COLOR
;invoke Rectangle,context,0h,0h,rct.right,rct.bottom
invoke FillRect,context,addr rct,eax
invoke EndPaint,hWnd,addr pnt
mov eax,rct.bottom
sub eax,rct.top
mov rct.bottom,eax
mov eax,rct.right
sub eax,rct.left
mov rct.right,eax
mov rct.top,0h
mov rct.left,0h
invoke BeginPaint,hWnd,addr pnt
mov context,eax
invoke CreateSolidBrush,BACK_COLOR
;invoke Rectangle,context,0h,0h,rct.right,rct.bottom
invoke FillRect,context,addr rct,eax
invoke EndPaint,hWnd,addr pnt
Как динамически изменять размеры окна?
2. MoveWindow либо SetWindowPos