Microsoft KB Archive/111650: Difference between revisions

From BetaArchive Wiki
m (1 revision imported: importing part 1)
m (Text replacement - "&" to "&")
 
Line 27: Line 27:


<pre class="CODESAMP">case WM_PAINT:
<pre class="CODESAMP">case WM_PAINT:
         hDC = BeginPaint(hWnd, &amp;ps);
         hDC = BeginPaint(hWnd, &ps);


             SetRect(&amp;rc, 0,0,100,100);
             SetRect(&rc, 0,0,100,100);
             DrawFocusRect(hDC, &amp;rc);      // Works as documented.
             DrawFocusRect(hDC, &rc);      // Works as documented.


             SetMapMode(hDC, MM_LOMETRIC);
             SetMapMode(hDC, MM_LOMETRIC);
             SetRect(&amp;rc, 1,-200,100,-300);
             SetRect(&rc, 1,-200,100,-300);
             DrawFocusRect(hDC, &amp;rc);    // Doesn't do anything.
             DrawFocusRect(hDC, &rc);    // Doesn't do anything.
       Rectangle(hDC, rc.left, rc.top, rc.right, rc.bottom); // Works
       Rectangle(hDC, rc.left, rc.top, rc.right, rc.bottom); // Works


             EndPaint(hWnd, &amp;ps);
             EndPaint(hWnd, &ps);
             break; </pre>
             break; </pre>
<br />
<br />

Latest revision as of 12:26, 21 July 2020

BUG: DrawFocusRect Fails in MM_LOMETRIC or MM_ISOTROPIC Mode

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
Issue type : kbbug
Technology : kbAudDeveloper kbWin3xSearch kbSDKSearch kbWinSDKSearch kbWinSDK300 kbWinSDK310


Last Reviewed: November 6, 1999
© 2001 Microsoft Corporation. All rights reserved. Terms of Use.