Click here to Skip to main content
15,896,063 members
Articles / Desktop Programming / MFC

Writing a Platform and GUI Toolkit Independent OpenGL Class

Rate me:
Please Sign up or sign in to vote.
4.92/5 (33 votes)
1 Nov 2010CPOL13 min read 98.1K   7.5K   90  
Article showing how to write OS and GUI toolkit portable OpenGL view class
//Microsoft Visual C++ generated resource script.
//
#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#ifndef APSTUDIO_INVOKED
#include "targetver.h"
#endif
#include "afxres.h"

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

#ifdef APSTUDIO_INVOKED

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

1 TEXTINCLUDE
BEGIN
	"resource.h\0"
END

2 TEXTINCLUDE
BEGIN
	"#ifndef APSTUDIO_INVOKED\r\n"
    "#include ""targetver.h""\r\n"
    "#endif\r\n"
	"#include ""afxres.h""\r\n"
	"\0"
END

3 TEXTINCLUDE
BEGIN
    "#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"
	"LANGUAGE 9, 1\r\n"
	"#pragma code_page(1252)\r\n"
	"#include ""res\\GLViewMFCMDIApp.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"
	"#if !defined(_AFXDLL)\r\n"
	"#include ""afxribbon.rc""		// MFC ribbon and control bar resources\r\n"
	"#endif\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)
LANGUAGE 9, 1
#pragma code_page(1252)
IDR_MAINFRAME           ICON         "res\\GLViewMFCMDIApp.ico"
IDR_GLViewMFCMDIAppTYPE         ICON         "res\\GLViewMFCMDIAppDoc.ico"
#endif

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

IDR_MAINFRAME           BITMAP      "res\\Toolbar.bmp"
IDR_MAINFRAME_256       BITMAP      "res\\Toolbar256.bmp"
IDB_MAIN                BITMAP  DISCARDABLE     "res\\main.bmp"
IDB_FILELARGE           BITMAP  DISCARDABLE     "res\\filelarge.bmp"
IDB_FILESMALL           BITMAP  DISCARDABLE     "res\\filesmall.bmp"
IDB_WRITELARGE          BITMAP  DISCARDABLE     "res\\writelarge.bmp"
IDB_WRITESMALL          BITMAP  DISCARDABLE     "res\\writesmall.bmp"
IDB_BUTTONS             BITMAP  DISCARDABLE     "res\\buttons.bmp"

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

IDR_MAINFRAME TOOLBAR   16, 16
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
    BUTTON      ID_APP_ABOUT
END

IDR_MAINFRAME_256 TOOLBAR   16, 16
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
    BUTTON      ID_APP_ABOUT
END

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE 9, 1
#pragma code_page(1252)

/////////////////////////////////////////////////////////////////////////////
//
// Menu
//

IDR_MAINFRAME MENU
BEGIN
	POPUP "&File"
	BEGIN
		MENUITEM "&New\tCtrl+N",                ID_FILE_NEW
		MENUITEM "&Open...\tCtrl+O",            ID_FILE_OPEN
		MENUITEM "&Close",                      ID_FILE_CLOSE
		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 "&Status Bar",                 ID_VIEW_STATUS_BAR
	END
	POPUP "&Help"
	BEGIN
		MENUITEM "&About GLViewMFCMDIApp...",          ID_APP_ABOUT
	END
END

IDR_GLViewMFCMDIAppTYPE MENU
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 "&Status Bar",                 ID_VIEW_STATUS_BAR
	END
	POPUP "&Window"
	BEGIN
		MENUITEM "&New Window",                 ID_WINDOW_NEW
	END
	POPUP "&Help"
	BEGIN
		MENUITEM "&About GLViewMFCMDIApp...",          ID_APP_ABOUT
	END
END




IDR_POPUP_EDIT MENU
BEGIN
	POPUP "Edit"
	BEGIN
		MENUITEM "Cu&t\tCtrl+X",            ID_EDIT_CUT
		MENUITEM "&Copy\tCtrl+C",           ID_EDIT_COPY
		MENUITEM "&Paste\tCtrl+V",          ID_EDIT_PASTE
	END
END

IDR_WINDOWS_MENU MENU
BEGIN
    MENUITEM "&New Window",                 ID_WINDOW_NEW
END

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

IDR_MAINFRAME ACCELERATORS
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 DIALOGEX 0, 0, 170, 62
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About GLViewMFCMDIApp"
FONT 8, "MS Shell Dlg"
BEGIN
    ICON            IDR_MAINFRAME,IDC_STATIC,14,14,21,20
    LTEXT           "GLViewMFCMDIApp, Version 1.0",IDC_STATIC,42,14,114,8,SS_NOPREFIX
    LTEXT           "Copyright (C) 2010",IDC_STATIC,42,26,114,8
    DEFPUSHBUTTON   "OK",IDOK,113,41,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 "040904e4"
		BEGIN
            VALUE "CompanyName", "TODO: <Company name>"
            VALUE "FileDescription", "TODO: <File description>"
			VALUE "FileVersion",     "1.0.0.1"
			VALUE "InternalName",    "GLViewMFCMDIApp.exe"
            VALUE "LegalCopyright", "TODO: (c) <Company name>.  All rights reserved."
			VALUE "OriginalFilename","GLViewMFCMDIApp.exe"
            VALUE "ProductName", "TODO: <Product name>"
			VALUE "ProductVersion",  "1.0.0.1"
		END
	END
	BLOCK "VarFileInfo"
	BEGIN
		VALUE "Translation", 0x0409, 1252
    END
END

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

#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
    IDD_ABOUTBOX, DIALOG
    BEGIN
        LEFTMARGIN, 7
        RIGHTMARGIN, 163
        TOPMARGIN, 7
        BOTTOMMARGIN, 55
    END
END
#endif    // APSTUDIO_INVOKED

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

STRINGTABLE
BEGIN
	IDP_OLE_INIT_FAILED   	"OLE initialization failed.  Make sure that the OLE libraries are the correct version."
END
STRINGTABLE
BEGIN
// Non-mac-targeting apps remove the two extra substrings
	IDR_MAINFRAME           "GLViewMFCMDIApp"
	IDR_GLViewMFCMDIAppTYPE         "\nGLViewMFCMDIApp\nGLViewMFCMDIApp\n\n\nGLViewMFCMDIApp.Document\nGLViewMFCMDIApp.Document"
END
STRINGTABLE
BEGIN
	AFX_IDS_APP_TITLE       "GLViewMFCMDIApp"
	AFX_IDS_IDLEMESSAGE     "Ready"
END
STRINGTABLE
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
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_DIRECT    "Print the active document using current options\nQuick Print"
	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 Status Bar"
END

STRINGTABLE
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


STRINGTABLE
BEGIN
	IDS_STATUS_PANE1        "Pane 1"
	IDS_STATUS_PANE2        "Pane 2"
	IDS_WINDOWS_MANAGER     "&Windows..."
	IDS_RIBBON_FILE         "File"
	IDS_RIBBON_NEW          "&New"
	IDS_RIBBON_OPEN         "&Open..."
	IDS_RIBBON_SAVE         "&Save"
	IDS_RIBBON_SAVEAS       "Save &As..."
	IDS_RIBBON_PRINT        "Print"
	IDS_RIBBON_PRINT_LABEL  "Preview and print the document"
	IDS_RIBBON_PRINT_QUICK  "&Quick Print"
	IDS_RIBBON_PRINT_PREVIEW "Print Pre&view"
	IDS_RIBBON_PRINT_SETUP  "Print Set&up"
	IDS_RIBBON_CLOSE        "&Close"
	IDS_RIBBON_RECENT_DOCS  "Recent Documents"
	IDS_RIBBON_EXIT         "E&xit"
	IDS_RIBBON_HOME         "&Home"
	IDS_RIBBON_CLIPBOARD    "Clipboard\nd"
	IDS_RIBBON_PASTE        "Paste\nv"
	IDS_RIBBON_CUT          "Cut\nx"
	IDS_RIBBON_COPY         "Copy\nc"
	IDS_RIBBON_SELECTALL    "Select All\na"
	IDS_RIBBON_WINDOW       "Window\nw"
	IDS_RIBBON_WINDOWS      "Windows\ni"
	IDS_RIBBON_STYLE        "Style"
	IDS_RIBBON_STYLE_TIP    "Modify Visual Style"
	IDS_RIBBON_STYLE_DESC   "Choose one of the Office 2007 themes"
	IDS_RIBBON_VIEW         "View"
	IDS_RIBBON_STATUSBAR    "Status Bar"
	IDS_EDIT_MENU           "Edit"
END
#endif

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

#define _AFX_NO_OLE_RESOURCES
#define _AFX_NO_TRACKER_RESOURCES
#define _AFX_NO_PROPERTY_RESOURCES

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE 9, 1
#pragma code_page(1252)
#include "res\\GLViewMFCMDIApp.rc2"  // non-Microsoft Visual C++ edited resources
#include "afxres.rc"  	// Standard components
#include "afxprint.rc"  // printing/print preview resources
#if !defined(_AFXDLL)
#include "afxribbon.rc"		// MFC ribbon and control bar resources
#endif
#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, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Product Manager Mahindra & Mahindra
India India
Sharjith is a Mechanical Engineer with strong passion for Automobiles, Aircrafts and Software development.

Comments and Discussions