MAM już :)
Hej. Mam taki problem z przesyłaniem danych do Proc umieszczonej w DLL.
Za pomocą call odwołuje się do PROC. w pliku dll
INVOKE BeginPaint, hWnd, addr ps
mov hdc, eax
INVOKE GetClientRect, hWnd, addr client
push client
push hdc
;INVOKE Rysuj_adr ,hdc ,client
CALL [Rysuj_adr]
Warto powiedzieć, tak mi się wydaje, że biblioteka jest podłączana dynamicznie, i dlatego według mnie INVOKE odpada. (jak się mylę proszę o wskazanie )
HDC jakoś pobiera, ale client, który jest typu RECT już nie, dlaczego tak sadze? Bo gdy wskazuje mu obszar do odświeżenia namalowania nie działa, a gdy wpisze z palca w te miejsca swoje liczby działa.
Chciałbym na środku elipse, więc kod wygląda tak:
Rysuj PROC hdc:HDC, client:RECT
LOCAL hPen:HPEN ;4
LOCAL hBrush:HBRUSH ;4
LOCAL hOldPen:HPEN ;4
LOCAL hOldBrush:HBRUSH ;4
LOCAL center:RECT ;4
mov eax, client.right
sub eax, client.left
sub eax, SZEROKOSC
xor edx, edx
mov ebx, 2
div ebx ;dzielimy przez 2
mov center.left, eax ;i przypisujemy nowa wartosc
add eax, SZEROKOSC ;dodajemy szerokosc to nasz obrazek
mov center.right, eax
mov eax, client.bottom
sub eax, client.top
sub eax, WYSOKOSC
xor edx, edx
mov ebx, 2
div ebx
mov center.top, eax
add eax, WYSOKOSC
mov center.bottom, eax
RGB 255,234,80
INVOKE CreatePen, PS_SOLID, 20, eax
mov hPen, eax
RGB 109,163,205
INVOKE CreateSolidBrush, eax
mov hBrush, eax
INVOKE SelectObject, hdc, hPen
mov hOldPen, eax
INVOKE SelectObject, hdc, hBrush
mov hOldBrush, eax
INVOKE Ellipse, hdc, center.left, center.top, center.right, center.bottom
INVOKE SelectObject, hdc, hOldPen
INVOKE SelectObject, hdc, hOldBrush
ret
Rysuj ENDP
Położenie jak i szerokość i wysokość ustalane przez Windows.