BUG: DrawFocusRect Fails in MM_LOMETRIC or MM_ISOTROPIC Mode
ID: Q111650
|
The information in this article applies to:
-
Microsoft Windows Software Development Kit (SDK) versions 3.0, 3.1
SYMPTOMS
If DrawFocusRect() is called when the mapping mode is MM_LOMETRIC or
MM_ISOTROPIC, no rectangle is drawn.
DrawFocusRect() is documented to take logical units and works properly in
MM_TEXT mapping mode. However, if the mapping mode is changed to
MM_LOMETRIC or MM_ISOTROPIC, as in the following code fragment,
DrawFocusRect() called with an appropriate rectangle (logical units) does
not work. Calling Rectangle() with the same rectangle does work.
case WM_PAINT:
hDC = BeginPaint(hWnd, &ps);
SetRect(&rc, 0,0,100,100);
DrawFocusRect(hDC, &rc); // Works as documented.
SetMapMode(hDC, MM_LOMETRIC);
SetRect(&rc, 1,-200,100,-300);
DrawFocusRect(hDC, &rc); // Doesn't do anything.
Rectangle(hDC, rc.left, rc.top, rc.right, rc.bottom); // Works
EndPaint(hWnd, &ps);
break;
STATUS
Microsoft has confirmed this to be a bug in Windows versions 3.0 and
3.1.
Additional query words:
Keywords : kbGDI
Version : WINDOWS:3.0,3.1
Platform : WINDOWS
Issue type : kbbug