184 if (sizePage.
cx < sizeWhole.
cx || sizePage.
cy < sizeWhole.
cy)
396 xRel = (
pt.x < 0) ? -
start.x : xRel;
400 yRel = (
pt.y < 0) ? -
start.y : yRel;
439 strSize.
Format(
_T(
"%ld x %ld"), xRel, yRel);
453 strSize.
Format(
_T(
"%ld x %ld"), xRel, yRel);
502 cxImage =
max(1, cxImage);
503 cyImage =
max(1, cyImage);
509 strSize.
Format(
_T(
"%d x %d"), cxImage, cyImage);
512 CRect rc = { 0, 0, cxImage, cyImage };
571 imageModel.
Crop(cxImage - cxDelta, cyImage - cyDelta, cxDelta, cyDelta);
577 imageModel.
Crop(cxImage + cxDelta, cyImage - cyDelta, 0, cyDelta);
586 imageModel.
Crop(cxImage - cxDelta, cyImage + cyDelta, cxDelta, 0);
CCanvasWindow canvasWindow
void __cdecl Format(UINT nFormatID,...)
VOID OnHVScroll(WPARAM wParam, INT fnBar)
VOID DoDraw(HDC hDC, RECT &rcClient, RECT &rcPaint)
LRESULT OnEraseBkgnd(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
CANVAS_HITTEST m_hitSelection
LRESULT OnLButtonDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnKeyDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnRButtonUp(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnCaptureChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnVScroll(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnSetCursor(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnLRButtonDown(BOOL bLeftButton, UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
CANVAS_HITTEST SelectionHitTest(POINT ptZoomed)
VOID Update(HWND hwndFrom)
VOID ImageToCanvas(POINT &pt)
LRESULT OnSize(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnPaint(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnLButtonUp(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnCancelMode(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
VOID CanvasToImage(POINT &pt, BOOL bZoomed=FALSE)
VOID StartSelectionDrag(CANVAS_HITTEST hit, POINT ptUnZoomed)
LRESULT OnLButtonDblClk(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnHScroll(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
VOID EndSelectionDrag(POINT ptUnZoomed)
LRESULT OnRButtonDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
VOID GetImageRect(RECT &rc)
VOID SelectionDragging(POINT ptUnZoomed)
LRESULT OnLRButtonUp(BOOL bLeftButton, UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnMouseMove(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnCtlColorEdit(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
VOID drawZoomFrame(INT mouseX, INT mouseY)
LRESULT OnRButtonDblClk(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
CANVAS_HITTEST CanvasHitTest(POINT pt)
CANVAS_HITTEST m_whereHit
LRESULT OnMouseWheel(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
LRESULT OnLRButtonDblClk(BOOL bLeftButton, UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled)
void Crop(int nWidth, int nHeight, int nOffsetX=0, int nOffsetY=0)
COLORREF GetBgColor() const
COLORREF GetFgColor() const
void Dragging(CANVAS_HITTEST hit, POINT pt)
void DrawSelection(HDC hDCImage, LPCRECT prc, COLORREF crBg=0, BOOL bBgTransparent=FALSE)
void DrawXorRect(HDC hdc, const RECT *prc)
static VOID NTAPI BitBlt(_In_ ULONG Left, _In_ ULONG Top, _In_ ULONG Width, _In_ ULONG Height, _In_reads_bytes_(Delta *Height) PUCHAR Buffer, _In_ ULONG BitsPerPixel, _In_ ULONG Delta)
SelectionModel selectionModel
PaletteModel paletteModel
BOOL setCursorOnSizeBox(CANVAS_HITTEST hit)
VOID drawSizeBoxes(HDC hdc, LPCRECT prcBase, BOOL bDrawFrame, LPCRECT prcPaint)
CANVAS_HITTEST getSizeBoxHitTest(POINT pt, LPCRECT prcBase)
HGDIOBJ WINAPI GetStockObject(_In_ int)
int WINAPI IntersectClipRect(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
BOOL WINAPI MoveToEx(_In_ HDC, _In_ int, _In_ int, _Out_opt_ LPPOINT)
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
BOOL WINAPI StretchBlt(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_opt_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ DWORD)
BOOL WINAPI RestoreDC(_In_ HDC, _In_ int)
HBITMAP WINAPI CreateCompatibleBitmap(_In_ HDC hdc, _In_ INT cx, _In_ INT cy)
int WINAPI FillRect(HDC, LPCRECT, HBRUSH)
int WINAPI SetBkMode(_In_ HDC, _In_ int)
COLORREF WINAPI SetTextColor(_In_ HDC, _In_ COLORREF)
BOOL WINAPI DeleteDC(_In_ HDC)
HPEN WINAPI CreatePen(_In_ int, _In_ int, _In_ COLORREF)
BOOL WINAPI LineTo(_In_ HDC, _In_ int, _In_ int)
int WINAPI SaveDC(_In_ HDC)
HWND WINAPI SetCapture(_In_ HWND hWnd)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
BOOL WINAPI ReleaseCapture(void)
struct tagSCROLLINFO SCROLLINFO
BOOL WINAPI GetCursorPos(_Out_ LPPOINT)
BOOL WINAPI IsRectEmpty(_In_ LPCRECT)
HCURSOR WINAPI SetCursor(_In_opt_ HCURSOR)
HWND WINAPI GetCapture(void)
BOOL WINAPI TrackMouseEvent(_Inout_ LPTRACKMOUSEEVENT)
BOOL WINAPI PtInRect(_In_ LPCRECT, _In_ POINT)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI EndPaint(_In_ HWND, _In_ const PAINTSTRUCT *)
#define COLOR_APPWORKSPACE
BOOL WINAPI UpdateWindow(_In_ HWND)
HDC WINAPI GetDC(_In_opt_ HWND)
BOOL WINAPI SetRectEmpty(_Out_ LPRECT)
HWND WINAPI GetParent(_In_ HWND)
BOOL WINAPI OffsetRect(_Inout_ LPRECT, _In_ int, _In_ int)
int WINAPI SetScrollInfo(_In_ HWND, _In_ int, _In_ LPCSCROLLINFO, _In_ BOOL)
SHORT WINAPI GetAsyncKeyState(_In_ int)
BOOL WINAPI ShowScrollBar(_In_ HWND, _In_ int, _In_ BOOL)
int WINAPI GetScrollPos(_In_ HWND, _In_ int)
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)
BOOL WINAPI InflateRect(_Inout_ LPRECT, _In_ int, _In_ int)
BOOL WINAPI GetScrollInfo(_In_ HWND, _In_ int, _Inout_ LPSCROLLINFO)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)
BOOL WINAPI ScreenToClient(_In_ HWND, _Inout_ LPPOINT)