From: Jack on 18 Jan 2010 08:10 Hi, case WM_PAINT: hDC = BeginPaint(hWnd, &PaintStruct); SetMapMode(hDC, MM_ISOTROPIC); SetWindowExtEx(hDC, 450,450,NULL); SetViewportExtEx(hDC, cxClient, -cyClient, NULL); SetViewportOrgEx(hDC, 0, cyClient, NULL); //[snip] ... case WM_MOUSEMOVE: int xPos, yPos; xPos = LOWORD(lParam); yPos = HIWORD(lParam); char buff[80]; sprintf (buff, "%d", xPos); SetWindowText(editField, buff); sprintf (buff, "%d", yPos); SetWindowText(editField2, buff); break; //.. I am wondering how I can make SetWindowText report the correct coordinates as I am using the mapping mode which starts from the lower-left corner. Currently, +ve x goes to the right and +ve y goes downwards. I'd like to have +ve goes upwards and starts from the lower-left corner. Thanks Jack
From: Igor Tandetnik on 18 Jan 2010 11:55 Jack wrote: > I am wondering how I can make SetWindowText report the correct coordinates > as I am using the mapping mode which starts from the lower-left corner. WM_MOUSEMOVE always reports physical pixels. You could use DPtoLP to convert them to logical coordinates, or just do the math yourself. -- With best wishes, Igor Tandetnik With sufficient thrust, pigs fly just fine. However, this is not necessarily a good idea. It is hard to be sure where they are going to land, and it could be dangerous sitting under them as they fly overhead. -- RFC 1925
From: Jack on 19 Jan 2010 03:01 Thanks I finally used this lets say the client height = 480 yPos = 480-yPos; Think it works Jack
|
Pages: 1 Prev: Abou tstd::random_shuffle's RandomNumberGenerator Next: Template compilation |