2 * PROJECT: PAINT for ReactOS
4 * FILE: base/applications/mspaint/canvas.h
5 * PURPOSE: Providing the canvas window class
6 * PROGRAMMERS: Benedikt Freisen
11 class CCanvasWindow
: public CWindowImpl
<CCanvasWindow
>
14 DECLARE_WND_CLASS_EX(_T("ReactOSPaintCanvas"), 0, COLOR_APPWORKSPACE
)
16 BEGIN_MSG_MAP(CCanvasWindow
)
17 MESSAGE_HANDLER(WM_SIZE
, OnSize
)
18 MESSAGE_HANDLER(WM_PAINT
, OnPaint
)
19 MESSAGE_HANDLER(WM_MOUSEMOVE
, OnMouseMove
)
20 MESSAGE_HANDLER(WM_HSCROLL
, OnHScroll
)
21 MESSAGE_HANDLER(WM_VSCROLL
, OnVScroll
)
22 MESSAGE_HANDLER(WM_ERASEBKGND
, OnEraseBkgnd
)
23 MESSAGE_HANDLER(WM_LBUTTONDOWN
, OnLButtonDown
)
24 MESSAGE_HANDLER(WM_KEYDOWN
, OnKeyDown
)
25 MESSAGE_HANDLER(WM_LBUTTONUP
, OnLButtonUp
)
26 MESSAGE_HANDLER(WM_SETCURSOR
, OnSetCursor
)
27 MESSAGE_HANDLER(WM_MOUSEWHEEL
, OnMouseWheel
)
28 MESSAGE_HANDLER(WM_CANCELMODE
, OnCancelMode
)
29 MESSAGE_HANDLER(WM_CAPTURECHANGED
, OnCaptureChanged
)
34 VOID
Update(HWND hwndFrom
);
37 CANVAS_HITTEST m_whereHit
;
38 POINT m_ptOrig
; // The origin of drag start
40 CANVAS_HITTEST
HitTest(POINT pt
);
42 VOID
DoDraw(HDC hDC
, RECT
& rcClient
, RECT
& rcPaint
);
43 VOID
OnHVScroll(WPARAM wParam
, INT fnBar
);
45 LRESULT
OnSize(UINT nMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
);
46 LRESULT
OnHScroll(UINT nMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
);
47 LRESULT
OnVScroll(UINT nMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
);
48 LRESULT
OnEraseBkgnd(UINT nMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
);
49 LRESULT
OnPaint(UINT nMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
);
50 LRESULT
OnLButtonDown(UINT nMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
);
51 LRESULT
OnMouseMove(UINT nMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
);
52 LRESULT
OnKeyDown(UINT nMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
);
53 LRESULT
OnLButtonUp(UINT nMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
);
54 LRESULT
OnSetCursor(UINT nMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
);
55 LRESULT
OnMouseWheel(UINT nMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
);
56 LRESULT
OnCancelMode(UINT nMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
);
57 LRESULT
OnCaptureChanged(UINT nMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
);