Нарисовал формочку, и пытаюсь мышкой на этой формочке рисовать.
- Код: Выделить всё
function WindowProc(wnd: HWND; msg: integer; wparam: WPARAM;
lparam: LPARAM): LRESULT; stdcall;
var
x, y,p,j: integer;
Dc: Hdc;
hpenNew, hPenOld: HPen;
begin
x := 0;
y := 0;
hpenNew := CreatePen(PS_GEOMETRIC, 0, RGB(255, 255, 255));
DC := GetDC(wnd);
hpenOld := HPEN(SelectObject(dc, hpenNew));
case msg of
WM_LBUTTONDOWN:
begin
p := LOWORD(lParam);
j := HIWORD(lParam);
MoveToEx(dc, p, j, nil);
end;
WM_MOUSEMOVE:
begin
if (wParam and MK_RBUTTON) > 0 then
begin
x := LOWORD(lParam);
y := HiWORD(lParam);
// DC := GetDC(wnd);
//SetPixelV(dc, x, y, RGB(255, 255, 255));
LineTo(dc,x,y);
end;
end;
WM_Destroy:
begin
PostQuitMessage(0);
Result := 0;
Exit;
end;
else
Result := DefWindowProc(wnd, msg, wparam, lparam);
end;
SelectObject(dc, hpenOld);
//release dc to system
ReleaseDC(wnd, dc);
//delete new pen
DeleteObject(hpenNew);
end;
Незнаю почему, но вместо того, чтобы линия рисовалась от точки установленной с помощью MoveToEx, она всегда рисуется из 0.0. Собственно вопрос, что я делаю не так?