MULTICON Demonstrates Dynamic Icons

ID: Q113251


The information in this article applies to:
  • The Microsoft Foundation Classes (MFC), used with:
    • Microsoft Visual C++ for Windows, 16-bit edition, versions 1.5, 1.51, 1.52
    • Microsoft Visual C++, 32-bit Editions, versions 1.0, 2.0, 2.1, 4.0, 4.1


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. Click the file names below to download the files:


Multicon.exe

For more information about how to download files from the Microsoft Download Center, please visit the Download Center at the following Web address

http://www.microsoft.com/downloads/search.asp
and then click How to use the Microsoft Download Center.

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 

Additional query words: dynamic mdi frame child kbfile

Keywords : kbfile kbMFC KbUIDesign kbVC
Version : winnt:1.0,2.0,2.1,4.0,4.1
Platform : winnt
Issue type :


Last Reviewed: December 13, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.