Click here to Skip to main content
15,891,905 members
Articles / Desktop Programming / MFC

Persistent Frames

Rate me:
Please Sign up or sign in to vote.
4.63/5 (5 votes)
6 Jan 2001 92.7K   2.2K   50  
A collection of classes that allows MFC SDI and MDI applications to remember the positions and sizes of their main frame and child frame windows.
//Microsoft Visual C++ generated resource script.
//
#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//

#include "afxres.h"

/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS

#ifdef APSTUDIO_INVOKED

/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//

1 TEXTINCLUDE DISCARDABLE 
BEGIN
	"resource.h\0"
END

2 TEXTINCLUDE DISCARDABLE 
BEGIN
	"#include ""afxres.h""\r\n"
	"\0"
END

3 TEXTINCLUDE DISCARDABLE 
BEGIN
    "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
    "#define _AFX_NO_OLE_RESOURCES\r\n"
    "#define _AFX_NO_TRACKER_RESOURCES\r\n"
    "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
	"\r\n"
	"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)\r\n"
	"#ifdef _WIN32\r\n"
	"LANGUAGE 9, 1\r\n"
	"#pragma code_page(1252)\r\n"
	"#endif //_WIN32\r\n"
	"#include ""res\\MDI.rc2""  // non-Microsoft Visual C++ edited resources\r\n"
	"#include ""afxres.rc""  	// Standard components\r\n"
	"#include ""afxprint.rc""	// printing/print preview resources\r\n"
	"#endif\r\n"
	"\0"
END

#endif    // APSTUDIO_INVOKED


/////////////////////////////////////////////////////////////////////////////
//
// Icon
//

// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE 9, 1
#pragma code_page(1252)
#endif //_WIN32
IDR_MAINFRAME           ICON    DISCARDABLE     "res\\MDI.ico"
IDR_MDITYPE         ICON    DISCARDABLE     "res\\MDIDoc.ico"
#endif

/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//

IDR_MAINFRAME           BITMAP  MOVEABLE PURE   "res\\Toolbar.bmp"

/////////////////////////////////////////////////////////////////////////////
//
// Toolbar
//

IDR_MAINFRAME TOOLBAR DISCARDABLE  16, 15
BEGIN
    BUTTON      ID_FILE_NEW
    BUTTON      ID_FILE_OPEN
    BUTTON      ID_FILE_SAVE
	SEPARATOR
    BUTTON      ID_EDIT_CUT
    BUTTON      ID_EDIT_COPY
    BUTTON      ID_EDIT_PASTE
	SEPARATOR
    BUTTON      ID_FILE_PRINT
	SEPARATOR
    BUTTON      ID_APP_ABOUT
END




#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE 9, 1
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
//
// Menu
//

IDR_MAINFRAME MENU PRELOAD DISCARDABLE 
BEGIN
	POPUP "&File"
	BEGIN
		MENUITEM "&New\tCtrl+N",                ID_FILE_NEW
		MENUITEM "&Open...\tCtrl+O",            ID_FILE_OPEN
		MENUITEM SEPARATOR
		MENUITEM "P&rint Setup...",             ID_FILE_PRINT_SETUP
		MENUITEM SEPARATOR
		MENUITEM "Recent File",                 ID_FILE_MRU_FILE1,GRAYED
		MENUITEM SEPARATOR
		MENUITEM "E&xit",                       ID_APP_EXIT
	END
	POPUP "&View"
	BEGIN
		MENUITEM "&Toolbar",                    ID_VIEW_TOOLBAR
		MENUITEM "&Status Bar",                 ID_VIEW_STATUS_BAR
	END
	POPUP "&Help"
	BEGIN
		MENUITEM "&About MDI...",          ID_APP_ABOUT
	END
END
IDR_MDITYPE MENU PRELOAD DISCARDABLE 
BEGIN
	POPUP "&File"
	BEGIN
		MENUITEM "&New\tCtrl+N",                ID_FILE_NEW
		MENUITEM "&Open...\tCtrl+O",            ID_FILE_OPEN
		MENUITEM "&Close",                      ID_FILE_CLOSE
		MENUITEM "&Save\tCtrl+S",               ID_FILE_SAVE
		MENUITEM "Save &As...",                 ID_FILE_SAVE_AS
		MENUITEM SEPARATOR
		MENUITEM "&Print...\tCtrl+P",           ID_FILE_PRINT
		MENUITEM "Print Pre&view",              ID_FILE_PRINT_PREVIEW
		MENUITEM "P&rint Setup...",             ID_FILE_PRINT_SETUP
		MENUITEM SEPARATOR
		MENUITEM "Recent File",                 ID_FILE_MRU_FILE1,GRAYED
		MENUITEM SEPARATOR
		MENUITEM "E&xit",                       ID_APP_EXIT
	END
	POPUP "&Edit"
	BEGIN
		MENUITEM "&Undo\tCtrl+Z",               ID_EDIT_UNDO
		MENUITEM SEPARATOR
		MENUITEM "Cu&t\tCtrl+X",                ID_EDIT_CUT
		MENUITEM "&Copy\tCtrl+C",               ID_EDIT_COPY
		MENUITEM "&Paste\tCtrl+V",              ID_EDIT_PASTE
	END
	POPUP "&View"
	BEGIN
		MENUITEM "&Toolbar",                    ID_VIEW_TOOLBAR
		MENUITEM "&Status Bar",                 ID_VIEW_STATUS_BAR
	END
	POPUP "&Window"
	BEGIN
		MENUITEM "&New Window",                 ID_WINDOW_NEW
		MENUITEM "&Cascade",                    ID_WINDOW_CASCADE
		MENUITEM "&Tile",                       ID_WINDOW_TILE_HORZ
		MENUITEM "&Arrange Icons",              ID_WINDOW_ARRANGE
	END
	POPUP "&Help"
	BEGIN
		MENUITEM "&About MDI...",          ID_APP_ABOUT
	END
END




/////////////////////////////////////////////////////////////////////////////
//
// Accelerator
//

IDR_MAINFRAME ACCELERATORS PRELOAD MOVEABLE PURE
BEGIN
	"N",            ID_FILE_NEW,            VIRTKEY,CONTROL
	"O",            ID_FILE_OPEN,           VIRTKEY,CONTROL
	"S",            ID_FILE_SAVE,           VIRTKEY,CONTROL
	"P",            ID_FILE_PRINT,          VIRTKEY,CONTROL
	"Z",            ID_EDIT_UNDO,           VIRTKEY,CONTROL
	"X",            ID_EDIT_CUT,            VIRTKEY,CONTROL
	"C",            ID_EDIT_COPY,           VIRTKEY,CONTROL
	"V",            ID_EDIT_PASTE,          VIRTKEY,CONTROL
	VK_BACK,        ID_EDIT_UNDO,           VIRTKEY,ALT
	VK_DELETE,      ID_EDIT_CUT,            VIRTKEY,SHIFT
	VK_INSERT,      ID_EDIT_COPY,           VIRTKEY,CONTROL
	VK_INSERT,      ID_EDIT_PASTE,          VIRTKEY,SHIFT
	VK_F6,          ID_NEXT_PANE,           VIRTKEY 
	VK_F6,          ID_PREV_PANE,           VIRTKEY,SHIFT
END




/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//

IDD_ABOUTBOX DIALOG DISCARDABLE  0, 0, 235, 55
CAPTION "About MDI"
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
FONT 8, "MS Sans Serif"
BEGIN
	ICON            IDR_MAINFRAME,IDC_STATIC,11,17,20,20
	LTEXT           "MDI Version 1.0",IDC_STATIC,40,10,119,8,
                    SS_NOPREFIX
	LTEXT           "Copyright (C) 2000",IDC_STATIC,40,25,119,8
	DEFPUSHBUTTON   "OK",IDOK,178,7,50,14,WS_GROUP
END



/////////////////////////////////////////////////////////////////////////////
//
// Version
//

VS_VERSION_INFO     VERSIONINFO
  FILEVERSION       1,0,0,1
  PRODUCTVERSION    1,0,0,1
 FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
 FILEFLAGS 0x1L
#else
 FILEFLAGS 0x0L
#endif
 FILEOS 0x4L
 FILETYPE 0x1L
 FILESUBTYPE 0x0L
BEGIN
	BLOCK "StringFileInfo"
	BEGIN
        BLOCK "040904B0"
		BEGIN 
			VALUE "CompanyName",     "\0"
			VALUE "FileDescription", "MDI MFC Application\0"
			VALUE "FileVersion",     "1, 0, 0, 1\0"
			VALUE "InternalName",    "MDI\0"
			VALUE "LegalCopyright",  "Copyright (C) 2000\0"
			VALUE "LegalTrademarks", "\0"
			VALUE "OriginalFilename","MDI.EXE\0"
			VALUE "ProductName",     "MDI Application\0"
			VALUE "ProductVersion",  "1, 0, 0, 1\0"
		END
	END
	BLOCK "VarFileInfo" 
	BEGIN 
		VALUE "Translation", 0x409, 1200
    END
END

/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//

#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO DISCARDABLE 
BEGIN
    IDD_ABOUTBOX, DIALOG
    BEGIN
        LEFTMARGIN, 7
        RIGHTMARGIN, 228
        TOPMARGIN, 7
        BOTTOMMARGIN, 48
    END
END
#endif    // APSTUDIO_INVOKED

/////////////////////////////////////////////////////////////////////////////
//
// String Table
//

STRINGTABLE PRELOAD DISCARDABLE 
BEGIN
	IDR_MAINFRAME           "MDI"
	IDR_MDITYPE         "\nMDI\nMDI\n\n\nMDI.Document\nMDI Document"
END
STRINGTABLE PRELOAD DISCARDABLE 
BEGIN
	AFX_IDS_APP_TITLE       "MDI"
	AFX_IDS_IDLEMESSAGE     "Ready"
END
STRINGTABLE DISCARDABLE 
BEGIN
	ID_INDICATOR_EXT        "EXT"
	ID_INDICATOR_CAPS       "CAP"
	ID_INDICATOR_NUM        "NUM"
	ID_INDICATOR_SCRL       "SCRL"
	ID_INDICATOR_OVR        "OVR"
	ID_INDICATOR_REC        "REC"
END
STRINGTABLE DISCARDABLE 
BEGIN
	ID_FILE_NEW             "Create a new document\nNew"
	ID_FILE_OPEN            "Open an existing document\nOpen"
	ID_FILE_CLOSE           "Close the active document\nClose"
	ID_FILE_SAVE            "Save the active document\nSave"
	ID_FILE_SAVE_AS         "Save the active document with a new name\nSave As"
	ID_FILE_PAGE_SETUP      "Change the printing options\nPage Setup"
	ID_FILE_PRINT_SETUP     "Change the printer and printing options\nPrint Setup"
	ID_FILE_PRINT           "Print the active document\nPrint"
	ID_FILE_PRINT_PREVIEW   "Display full pages\nPrint Preview"
	ID_APP_ABOUT            "Display program information, version number and copyright\nAbout"
	ID_APP_EXIT             "Quit the application; prompts to save documents\nExit"
	ID_FILE_MRU_FILE1       "Open this document"
	ID_FILE_MRU_FILE2       "Open this document"
	ID_FILE_MRU_FILE3       "Open this document"
	ID_FILE_MRU_FILE4       "Open this document"
	ID_FILE_MRU_FILE5       "Open this document"
	ID_FILE_MRU_FILE6       "Open this document"
	ID_FILE_MRU_FILE7       "Open this document"
	ID_FILE_MRU_FILE8       "Open this document"
	ID_FILE_MRU_FILE9       "Open this document"
	ID_FILE_MRU_FILE10      "Open this document"
	ID_FILE_MRU_FILE11      "Open this document"
	ID_FILE_MRU_FILE12      "Open this document"
	ID_FILE_MRU_FILE13      "Open this document"
	ID_FILE_MRU_FILE14      "Open this document"
	ID_FILE_MRU_FILE15      "Open this document"
	ID_FILE_MRU_FILE16      "Open this document"
	ID_NEXT_PANE            "Switch to the next window pane\nNext Pane"
	ID_PREV_PANE            "Switch back to the previous window pane\nPrevious Pane"
	ID_WINDOW_NEW           "Open another window for the active document\nNew Window"
	ID_WINDOW_ARRANGE       "Arrange icons at the bottom of the window\nArrange Icons"
	ID_WINDOW_CASCADE       "Arrange windows so they overlap\nCascade Windows"
	ID_WINDOW_TILE_HORZ     "Arrange windows as non-overlapping tiles\nTile Windows"
	ID_WINDOW_TILE_VERT     "Arrange windows as non-overlapping tiles\nTile Windows"
	ID_WINDOW_SPLIT         "Split the active window into panes\nSplit"
	ID_EDIT_CLEAR           "Erase the selection\nErase"
	ID_EDIT_CLEAR_ALL       "Erase everything\nErase All"
	ID_EDIT_COPY            "Copy the selection and put it on the Clipboard\nCopy"
	ID_EDIT_CUT             "Cut the selection and put it on the Clipboard\nCut"
	ID_EDIT_FIND            "Find the specified text\nFind"
	ID_EDIT_PASTE           "Insert Clipboard contents\nPaste"
	ID_EDIT_REPEAT          "Repeat the last action\nRepeat"
	ID_EDIT_REPLACE         "Replace specific text with different text\nReplace"
	ID_EDIT_SELECT_ALL      "Select the entire document\nSelect All"
	ID_EDIT_UNDO            "Undo the last action\nUndo"
	ID_EDIT_REDO            "Redo the previously undone action\nRedo"
	ID_VIEW_TOOLBAR         "Show or hide the toolbar\nToggle ToolBar"
	ID_VIEW_STATUS_BAR      "Show or hide the status bar\nToggle StatusBar"
END

STRINGTABLE DISCARDABLE 
BEGIN
	AFX_IDS_SCSIZE          "Change the window size"
	AFX_IDS_SCMOVE          "Change the window position"
	AFX_IDS_SCMINIMIZE      "Reduce the window to an icon"
	AFX_IDS_SCMAXIMIZE      "Enlarge the window to full size"
	AFX_IDS_SCNEXTWINDOW    "Switch to the next document window"
	AFX_IDS_SCPREVWINDOW    "Switch to the previous document window"
	AFX_IDS_SCCLOSE         "Close the active window and prompts to save the documents"
	AFX_IDS_SCRESTORE       "Restore the window to normal size"
	AFX_IDS_SCTASKLIST      "Activate Task List"
	AFX_IDS_MDICHILD        "Activate this window"
	AFX_IDS_PREVIEW_CLOSE   "Close print preview mode\nCancel Preview"
END


#endif


#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 3 resource.
//

#define _AFX_NO_SPLITTER_RESOURCES
#define _AFX_NO_OLE_RESOURCES
#define _AFX_NO_TRACKER_RESOURCES
#define _AFX_NO_PROPERTY_RESOURCES

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
#ifdef _WIN32
LANGUAGE 9, 1
#pragma code_page(1252)
#endif //_WIN32
#include "res\\MDI.rc2"  // non-Microsoft Visual C++ edited resources
#include "afxres.rc"  	// Standard components
#include "afxprint.rc"  // printing/print preview resources
#endif

#endif    // not APSTUDIO_INVOKED

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
Software Developer (Senior) Brosix
Bulgaria Bulgaria
Stefan does programming since his early ages more than 30 years ago. Later he began programming at his work and now he is very happy to work his hobby. He owns a Master's degree in Computer Science.

During his professional career, Stefan has worked with many technologies. His programming experience includes C/C++, Java, C#, PHP, JavaScript, MFC, ATL, ASP, ASP.NET, TCP/IP, SQL. He has worked with different operating systems: Windows, Linux, Mac OS X, iOS, Android, Solaris, FreeBSD, NetBSD and QNX.

Currently his professional interests are in building large scale distributed systems that operate over the Internet. This involves building server components as well as developing system level software.

More information about his current work can be found here: brosix.com - Enterprise Instant Messaging


Stefan is based in Plovdiv, Bulgaria. It is a very nice and peaceful place combined with an enjoyable weather.

Stefan has a wife and 2 children. He likes in his spear time to travel with his family to see new and interesting places.

Comments and Discussions