BUG: BLOCKS32 Sample Fails to Show Cursors when Linked to MFC (208856)



The information in this article applies to:

  • Microsoft Visual C++, 32-bit Enterprise Edition 5.0
  • Microsoft Visual C++, 32-bit Enterprise Edition 6.0
  • Microsoft Visual C++, 32-bit Professional Edition 5.0
  • Microsoft Visual C++, 32-bit Professional Edition 6.0
  • Microsoft Visual C++, 32-bit Learning Edition 6.0

This article was previously published under Q208856

SYMPTOMS

Typically, when you move the mouse pointerover a rectangle or an ellipse that is inserted in the BLOCKS32 sample, a different mouse cursor appears depending on the position of the mouse.

However, if you compile the BLOCKS32 sample with the Use MFC in a Static Library option, the different cursors do not appear when you move the mouse pointer over a rectangle or an ellipse.

CAUSE

When an application is linked to MFC by using the static library, the MFC resources are compiled into the executable of an application. The executable of the application will include the Afxres.rc file. To check this, click Resource Includes on the View menu. The Afxres.rc file has the resources that CRectTracker uses in the MFC source code.

These resources are only included when _AFX_NO_TRACKER_RESOURCES is not defined. The BLOCKS32 project has _AFX_NO_TRACKER_RESOURCES defined. Therefore, it does not put the resources that CRectTracker requires in the executable image of the application. Therefore, none of the cursors that are used by CRectTracker will show up when you build the sample by using MFC statically.

RESOLUTION

  1. On the View menu, click Resource Includes.
  2. Delete the following line:
       #define _AFX_NO_TRACKER_RESOURCES 
    				

STATUS

Microsoft has confirmed that this is a bug in the Microsoft products that are listed at the beginning of this article.

MORE INFORMATION

Steps to Reproduce the Behavior

  1. Extract the Blocks32.exe sample from the MSDN, the Microsoft Developers Network.
  2. On the Project menu, click Settings.
  3. Change Use MFC in a Shared DLL to Use MFC in a Static Library.
  4. Build and then run the application.
  5. From the New menu, click Rectangle.
  6. Notice that when you move the mouse pointer into the rectangle, the cursor disappears.
View the Afxres.rc file as a text file and you will see that CRectTracker resources are only included when _AFX_NO_TRACKER_RESOURCES is not defined.

Modification Type:MajorLast Reviewed:11/17/2003
Keywords:kbBug kbContainer kbCursor kbnofix KB208856 kbAudDeveloper