MULTICON Demonstrates Dynamic Icons (113251)



The information in this article applies to:

  • The Microsoft Foundation Classes (MFC), when used with:
    • Microsoft Visual C++ for Windows, 16-bit edition 1.5
    • Microsoft Visual C++ for Windows, 16-bit edition 1.51
    • Microsoft Visual C++ for Windows, 16-bit edition 1.52
    • Microsoft Visual C++, 32-bit Editions 1.0
    • Microsoft Visual C++, 32-bit Editions 4.1
    • Microsoft Visual C++, 32-bit Editions 2.0
    • Microsoft Visual C++, 32-bit Editions 2.1
    • Microsoft Visual C++, 32-bit Editions 4.0

This article was previously published under Q113251

SUMMARY

The MULTICON sample demonstrates how to implement dynamic icons for both CMDIChildWnd and CMDIFrameWnd windows. The procedure is to first register a window class with a NULL icon for the frame. A frame of this type receives WM_PAINT messages when it becomes iconic, and can output to a 36 x 36* pixel area. To prevent duplicating output code from the view, the frame can call its view's OnDraw member to do the output.

NOTE: Dynamically animated application icons will not work on Windows 95 and versions of Windows NT after 3.51.

MORE INFORMATION

The following files are available for download from the Microsoft Download Center:


Multicon.exe

For additional information about how to download Microsoft Support files, click the following article number to view the article in the Microsoft Knowledge Base:

119591 How to Obtain Microsoft Support Files from Online Services

Microsoft scanned this file for viruses. Microsoft used the most current virus-detection software that was available on the date that the file was posted. The file is stored on security-enhanced servers that help to prevent any unauthorized changes to the file.

This file contains subdirectories, be sure to use the -d command line switch while extracting.

Two simple view classes are used to demonstrate dynamic icons: CRectView and CEllipseView. These classes draw a random rectangle and a random ellipse, respectively. CWinApp::OnIdle is overridden to invalidate each open view and each minimized frame window. The MULTICON sample also demonstrates how to scale the output from an open view to fit a minimized frame, and how to convert the minimized frame's output to an icon during a drag operation.

*For Windows 3.1, subject to change in future versions of Windows.
Feature (How to...)                            Location(s)
-------------------                            -----------
Generate random rectangles ................... RECTVIEW.CPP
                                               CRectView::OnDraw

Generate random ellipses ..................... ELLPSEVW.CPP:
                                               CEllipseView::OnDraw

Register a window class with a NULL
icon ......................................... MAINFRM.CPP:
                                               CMainFrame::PreCreateWindow

Render on a minimized CMDIFrameWnd using the
application's active view .................... CMainFrame::OnPaint

Convert the display of a minimized
CMDIFrameWnd to an icon ...................... CMainFrame::QueryDragIcon

Enable OnIdle processing while a menu or
modal dialog is displayed .................... CMainFrame::OnEnterIdle

Render on a minimized CMDIChildWnd using the   
associated view .............................. ICONWND.CPP:
                                               CIconWnd::OnPaint

Convert the display of a minimized
CMDIChildWnd to an icon ...................... CIconWnd::QueryDragIcon

Drive animated views and icons in the          
background ................................... MULTICON.CPP:
                                               CMulticonApp::OnIdle
				

Modification Type:MinorLast Reviewed:8/9/2004
Keywords:kbdownload kbfile kbMDI kbsample KbUIDesign KB113251