int x, y, w, h;
scrollboxWindow.GetClientRect(&clientRectScrollbox);
GetClientRect(&clientRectImageArea);
- w = clientRectImageArea.right * clientRectScrollbox.right / (clientRectImageArea.right * 2);
- h = clientRectImageArea.bottom * clientRectScrollbox.bottom / (clientRectImageArea.bottom * 2);
+ w = clientRectImageArea.right * 2;
+ h = clientRectImageArea.bottom * 2;
+ if (!w || !h)
+ {
+ return;
+ }
+ w = clientRectImageArea.right * clientRectScrollbox.right / w;
+ h = clientRectImageArea.bottom * clientRectScrollbox.bottom / h;
x = max(0, min(clientRectImageArea.right - w, mouseX - w / 2));
y = max(0, min(clientRectImageArea.bottom - h, mouseY - h / 2));