In the MainWndProc function, add code to process WM_LBUTTONUP messages. This code defines the source and destination rectangles for painting, and forces a repaint. The code should appear as follows:
case WM_LBUTTONUP:EndGDIX = LOWORD(lParam);EndGDIY = HIWORD(lParam);/* Use the mouse position's percentage offsets in the image rectangleto determine the pixel offsets in the bitmap.Using percentages allows for the possibility that the image is zoomed. */EndPixelX = MulDiv(BITMAPWIDTH(&LeadBitmap), EndGDIX - rLeadDest.left, DisplayWidth);EndPixelY = MulDiv(BITMAPHEIGHT(&LeadBitmap), EndGDIY - rLeadDest.top, DisplayHeight);/* Do nothing if no area is defined */if ((EndPixelX == StartPixelX) || (EndPixelY == StartPixelY))return (0);/* Get the source rectangle coordinates for painting.Allow for different mouse drag directions */if (StartGDIX < EndGDIX){rLeadSource.left = StartPixelX;rLeadSource.right = EndPixelX;}else{rLeadSource.left = EndPixelX;rLeadSource.right = StartPixelX;}if (StartGDIY < EndGDIY){rLeadSource.top = StartPixelY;rLeadSource.bottom = EndPixelY;}else{rLeadSource.top = EndPixelY;rLeadSource.bottom = StartPixelY;}/* Use this local function (described in Fitting an Image to a Window) tocenter the cropped display in the client area. */CalcDisplay (rClientSize.right, /* Width allowed */rClientSize.bottom, /* Height allowed */rLeadSource.right - rLeadSource.left, /* Width factor, for aspect ratio */rLeadSource.bottom - rLeadSource.top, /* Height factor, for aspect ratio */&DisplayTop, /* Resulting top value, for centering */&DisplayLeft, /* Resulting left value, for centering */&DisplayWidth, /* Resulting width value */&DisplayHeight); /* Resulting height value *//* Set the destination rectangle for painting */SetRect(&rLeadDest, DisplayLeft, DisplayTop,DisplayLeft + DisplayWidth, DisplayTop + DisplayHeight);/* If necessary, translate the source rectangle to the bitmap's view perspective */if (LeadBitmap.ViewPerspective != TOP_LEFT)L_RectToBitmap(&LeadBitmap, TOP_LEFT, &rLeadSource);/* Repaint the whole client area */InvalidateRect(hWnd,NULL,TRUE);return (0);
Raster .NET | C API | C++ Class Library | JavaScript HTML5
Document .NET | C API | C++ Class Library | JavaScript HTML5
Medical .NET | C API | C++ Class Library | JavaScript HTML5
Medical Web Viewer .NET
