Click here to Skip to main content
15,885,366 members
Articles / Desktop Programming / MFC

Develop MFC Doc/View Application Which Supports Any Number Document Template

Rate me:
Please Sign up or sign in to vote.
1.57/5 (3 votes)
2 Jun 20052 min read 36.5K   1.7K   26  
This article provides an introduction to TangramLittle, a C++ Framework for MFC and the .NET Framework. Knowledge in MFC and the .NET Framework is assumed.
��<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<!- (c) 2001 Microsoft Corporation --><HTML 

dir=ltr><HEAD><TITLE>Tangram MainFrame Wizard</TITLE>

<META content=http://schemas.microsoft.com/intellisense/ie5 

name=vs_targetSchema>

<META http-equiv=Content-Type content="text/html; charset=unicode">

<STYLE type=text/css>@import url();</STYLE>



<SCRIPT>

		var strURL = "../../../";

		strURL += window.external.GetHostLocale();

		strURL += "/NewStyles.css";

		document.styleSheets(0).imports(0).href = strURL;

	</SCRIPT>

<SYMBOL TYPE="text" NAME="SAFE_PROJECT_NAME"></SYMBOL><SYMBOL TYPE="text" 

NAME="LIB_NAME"></SYMBOL><SYMBOL TYPE="text" NAME="APP_CLASS"></SYMBOL><SYMBOL 

TYPE="text" NAME="APP_BASE_CLASS" VALUE="CWinApp"></SYMBOL><SYMBOL 

TYPE="select-one" NAME="MRU_SIZE" VALUE="4"></SYMBOL><SYMBOL TYPE="checkbox" 

NAME="DLL_TYPE_REGULAR" VALUE="true"></SYMBOL><SYMBOL TYPE="checkbox" 

NAME="DLL_TYPE_REGULAR_STATIC" VALUE="false"></SYMBOL><SYMBOL TYPE="checkbox" 

NAME="DLL_TYPE_EXTENSION" VALUE="false"></SYMBOL><SYMBOL TYPE="checkbox" 

NAME="AUTOMATION" VALUE="false"></SYMBOL><SYMBOL TYPE="checkbox" NAME="SOCKETS" 

VALUE="false"></SYMBOL><SYMBOL TYPE="text" 

NAME="LIBID_REGISTRY_FORMAT"></SYMBOL><SYMBOL TYPE="text" 

NAME="LIBID_STATIC_CONST_GUID_FORMAT"></SYMBOL><SYMBOL TYPE="text" 

NAME="RES_PATH" VALUE="res"></SYMBOL><SYMBOL TYPE="num" NAME="START_RES" 

VALUE="1000"></SYMBOL><SYMBOL TYPE="text" NAME="MFC_PATH" 

VALUE=""></SYMBOL><SYMBOL TYPE="text" NAME="YEAR"></SYMBOL>

<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>

<BODY onkeypress="if (!bValidating) OnPress();" 

onkeydown="if (!bValidating) OnKey();" bottomMargin=0 bgColor=buttonface 

leftMargin=0 topMargin=0 onload=InitDocument(document); rightMargin=0>

<TABLE class=ONE height="100%" cellSpacing=0 cellPadding=0 width="100%" 

border=0>

  <COLGROUP>

  <COL width=178>

  <COL><!--OPEN OF INTRODUCTORY INFORMATION TABLE//-->

  <TR VALIGN="top">

	<TD HEIGHT="79" WIDTH="100%" COLSPAN="2">

	 <TABLE CLASS="TWO" BORDER="0" CELLPADDING="0" CELLSPACING="0"><COLGROUP>

	 <COL WIDTH="12"><COL><COL WIDTH="12">

	  <TR>

	   <TD VALIGN="top" HEIGHT="12" WIDTH="12">

	  	&nbsp;

	   </TD>

  

	   <TD VALIGN="top" HEIGHT="12">

	  	&nbsp;

	   </TD>

  

	   <TD VALIGN="top" HEIGHT="12" WIDTH="12">

	  	&nbsp;

	   </TD>

  

	   <TD CLASS="IMAGE" VALIGN="bottom" WIDTH="110" ROWSPAN="2">

		<DIV CLASS="SMALLA" ID="Layer0">

		 <IMG class=SMALLEST height=63 alt="" src="../../Images/MFC_DLL_1.gif" width=63 border=0>

		</DIV>

	   </TD>



	   <TD VALIGN="top" HEIGHT="12" WIDTH="6" ROWSPAN="2">

	  	&nbsp;

	   </TD>

	  </TR>

	 

	  <TR>

	   <TD VALIGN="top" HEIGHT="65" WIDTH="12">

	  	&nbsp;

	   </TD>

	  

	   <TD VALIGN="top" HEIGHT="65">

		<H4 CLASS="HEAD" ID="HEAD">Welcome to the Tangram MainFrame Wizard</H4>

		<P CLASS="SUBHEAD" ID="SUBHEAD">This wizard 

            generates an MFC dynamic link library application project with the properties you specify and .NET FrameWork support.</P>

	   </TD>

	  

	   <TD VALIGN="top" HEIGHT="65" WIDTH="12">

	  	&nbsp;

	   </TD>

	  </TR>

	 

	  <TR>

	   <TD VALIGN="top" CLASS="RULE" COLSPAN="5" HEIGHT="2">

		<TABLE BORDER="0" WIDTH="100%" HEIGHT="1" CELLPADDING="0" CELLSPACING="0">

	  	 <TR VALIGN="top">

	  	  <TD HEIGHT="1" WIDTH="100%" BGCOLOR="buttonshadow"></TD>

	  	  <TD HEIGHT="1" WIDTH="1" BGCOLOR="window"></TD>

	  	 </TR>

		</TABLE>

	   </TD>

	  </TR>

	 </TABLE>

	</TD>

  </TR><!--CLOSE OF INTRODUCTORY INFORMATION TABLE//--><!--OPEN OF NAVIGATION, CONTENT, AND BUTTON TABLES//-->

  <TR VALIGN="top">

	<TD CLASS="Three" VALIGN="top" HEIGHT="100%" WIDTH="178">

	 <TABLE CLASS="fixedSize" HEIGHT="100%" WIDTH="178" BORDER="0" CELLPADDING="0" CELLSPACING="0">

  	  <TR VALIGN="top">

	   <TD CLASS="threeCustom" VALIGN="top" STYLE="BACKGROUND-IMAGE: url(../../Images/MFC_DLL_Background.gif)"><!--OPEN OF NAVIGATION TABLE//-->



	    <TABLE CLASS="THREE" BORDER="0" CELLPADDING="0" CELLSPACING="0">

              <COLGROUP>

		<COL WIDTH="12"><COL WIDTH="166"><COL WIDTH="1">

		 <TR>

	   	  <TD VALIGN="top" COLSPAN="3" HEIGHT="12">

	  		&nbsp;

		  </TD>

		 </TR>

		 <TR>

	   	  <TD VALIGN="top" HEIGHT="100%" WIDTH="12">

	  		&nbsp;

		  </TD>

	   	  <TD VALIGN="top" HEIGHT="100%" WIDTH="165"><!--OPEN OF NAVIGATIONAL LINKS//-->



		  	<DIV CLASS="LINKSELECTED">

	 	   	 <SPAN CLASS="VERTLINE1">

			  <IMG height=1 alt="" src="../../Images/spacer.gif" width=1 border=0>

			 </SPAN>

			 <SPAN CLASS="HORILINE1">

			  <TABLE WIDTH="167" HEIGHT="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0">

			   <TR VALIGN="top">

			    <TD CLASS="DOTTEDLINE" HEIGHT="1">

				</TD>

			   </TR>

			   <TR VALIGN="top">

			    <TD HEIGHT="100%">

				 <IMG height=28 alt="" src="../../Images/spacer.gif" width=1 border=0>

			    </TD>

			   </TR>

			   <TR VALIGN="top">

			    <TD CLASS="DOTTEDLINE" HEIGHT="1">

			    </TD>

			   </TR>

			  </TABLE>

			 </SPAN>

			 <TABLE WIDTH="160" HEIGHT="28" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="LINKTEXTSELECTED">

			  <TR VALIGN="center">

			   <TD WIDTH="156">

				<SPAN ID="Default" TITLE="Examine an overview of selections.">Overview</SPAN>

			   </TD>

			   <TD WIDTH="4">

				<IMG height=1 src="../../Images/spacer.gif" width=4>

			   </TD>

			  </TR>

			 </TABLE>

			</DIV>

	  		

			<DIV CLASS="LINK">

			 <TABLE WIDTH="166" HEIGHT="28" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="LINKTEXT">

			  <TR VALIGN="center">

	  		   <TD WIDTH="162">

				<SPAN CLASS="ACTIVELINK" ID="AppSettings" TITLE="Specify the type and features of the DLL." onClick="Next(document, 'AppSettings.htm');" TABINDEX="1">Application Settings</SPAN>

			   </TD>

	  		   <TD WIDTH="4">

			  	<IMG height=1 src="../../Images/spacer.gif" width=4>

			   </TD>

			  </TR>

			 </TABLE>

			</DIV><!--CLOSE OF NAVIGATIONAL LINKS//-->

		  </TD>

		  <TD WIDTH="1">

		   <DIV CLASS="VERTLINE">

			 <IMG height=1 alt="" src="../../Images/spacer.gif" width=1 border=0>

		   </DIV>

		  </TD>

		 </TR>

		 </TABLE>

		</TD>

	   </TR>

	   </TABLE><!--CLOSE OF NAVIGATION TABLE//-->

	   </TD>

  

	   <TD VALIGN="top" HEIGHT="100%"><!--OPEN OF CONTENT AND BUTTON TABLE//-->

	   

	   	<TABLE CLASS="ONE" BORDER="0" CELLPADDING="0" CELLSPACING="0"><COLGROUP>

		<COL WIDTH="100%">

		 <TR VALIGN="top">

		  <TD HEIGHT="100%"><!--OPEN OF CONTENT//-->

		  

		  	<TABLE CLASS="CONTENT" BORDER="0" CELLPADDING="0" CELLSPACING="0">

              <COLGROUP>

			<COL WIDTH="12"><COL WIDTH="398"><COL WIDTH="12">

 			 <TR>

  			  <TD VALIGN="top" HEIGHT="12" COLSPAN="3">

  				&nbsp;

  			  </TD>

 			 </TR>

 			 <TR>

 			 <TD VALIGN="top" WIDTH="12">

  				&nbsp;

  			  </TD>

  			  <TD VALIGN="top">

 				<SPAN CLASS="ItemTextTop" ID="PROJECT_SETTINGS_SPAN">These are the current project settings:</SPAN>



					<UL>

	  	 			 <LI CLASS="LIST">

		  			  <SPAN CLASS="SideBtnHidden" ID="DLLTYPE" TITLE="">	

		   				<LABEL FOR="DLLTYPE"></LABEL>

		  			  </SPAN>

	  	 			 <LI CLASS="LIST">

		  			  <SPAN CLASS="SideBtnHidden" ID="AUTOMATIONSUPPORT" TITLE="">	

		   				<LABEL FOR="AUTOMATIONSUPPORT"></LABEL>

		  			  </SPAN>

	  	 			 <LI CLASS="LIST">

		  			  <SPAN CLASS="SideBtnHidden" ID="WINSOCKET" TITLE="">	

		   				<LABEL FOR="WINSOCKET"></LABEL>

		  			  </SPAN>

	  	 			 </LI>

					</UL>

					

	  			<SPAN CLASS="ItemText" ID="FinishText">Click <B>Finish</B> from any window to accept the current settings.</SPAN>

	

				<P CLASS="ElementSpacer2">&nbsp;</P>

					 

               	<SPAN CLASS="ItemText" ID="README_REMINDER" TITLE="">After you create the project, see the project's readme.txt file for information about the project features and files that are generated.</SPAN>

  		  	  </TD>

  

  		  	  <TD VALIGN="top" WIDTH="12">

  				&nbsp;

  		  	  </TD>

 		  	 </TR>

		 	</TABLE><!--CLOSE OF CONTENT//-->

		  </TD>

		 </TR>

		 <TR VALIGN="bottom">

		  <TD HEIGHT="48"><!--OPEN OF BUTTON HTML//-->

		  

		  	<TABLE HEIGHT="48" BORDER="0" CELLPADDING="0" CELLSPACING="0">

              <COLGROUP>

			<COL WIDTH="12"><COL><COL WIDTH="75"><COL WIDTH="4"><COL WIDTH="75"><COL WIDTH="4"><COL WIDTH="75"><COL WIDTH="12">

			 <TR>

  			  <TD VALIGN="top" CLASS="RULE" COLSPAN="8" HEIGHT="2">

				<TABLE BORDER="0" WIDTH="100%" HEIGHT="1" CELLPADDING="0" CELLSPACING="0">

  	 			 <TR VALIGN="top">

  	  			  <TD HEIGHT="1" WIDTH="100%" BGCOLOR="buttonshadow"></TD>

  	  			  <TD HEIGHT="1" WIDTH="1" BGCOLOR="window"></TD>

  	 			 </TR>

				</TABLE>

  			  </TD>

 			  </TR>

 

 			  <TR>

  			  <TD VALIGN="top" HEIGHT="11" COLSPAN="8">

  				&nbsp;

  			  </TD>

 			 </TR>

 

 			<TR>

  			  <TD VALIGN="center" HEIGHT="23" WIDTH="12">

  				&nbsp;

  			  </TD>

  			  <TD VALIGN="top" HEIGHT="23">

  				&nbsp;

  			  </TD>

  			  <TD VALIGN="center" HEIGHT="23" WIDTH="75">

  				<BUTTON CLASS="BUTTONS" ID="FinishBtn" onClick="OnFinish(document);">Finish</BUTTON>

  			  </TD>

  			  <TD VALIGN="center" HEIGHT="23" WIDTH="4">

  				&nbsp;

  			  </TD>

  			  <TD VALIGN="center" HEIGHT="23" WIDTH="75">

  				<BUTTON CLASS="BUTTONS" ID="CancelBtn" onClick="window.external.Finish(document, 'cancel');">Cancel</BUTTON>

  			  </TD>

  			  <TD VALIGN="center" HEIGHT="23" WIDTH="4">

  				&nbsp;

  			  </TD>

  			  <TD VALIGN="center" HEIGHT="23" WIDTH="75">

  				<BUTTON CLASS="BUTTONS" ID="HelpBtn" onClick="window.external.OnHelp('vc.appwiz.mfc.dll.overview');">Help</BUTTON>

  			  </TD>

  			  <TD VALIGN="center" HEIGHT="23" WIDTH="12">

  				&nbsp;

  			  </TD>

 			 </TR>

 

 			 <TR>

  			  <TD VALIGN="top" HEIGHT="12" COLSPAN="8">

  				&nbsp;

  			  </TD>

 			 </TR>

			</TABLE><!--CLOSE OF BUTTON HTML//-->

		  </TD>

		 </TR>

		</TABLE><!--CLOSE OF NAVIGATION, CONTENT, AND BUTTON TABLES//-->

 	</TD>

  </TR></TABLE>



</BODY>

</HTML>



<SCRIPT LANGUAGE="JSCRIPT">



var tab_array = new Array();

tab_array[0] = Default;

tab_array[1] = AppSettings;



function InitDocument(document)

{

	setDirection();

	

	if (window.external.FindSymbol("DOCUMENT_FIRST_LOAD"))

	{

		var L_WizardDialogTitle_Text = "Tangram MainFrame Wizard";

		window.external.AddSymbol("WIZARD_DIALOG_TITLE", L_WizardDialogTitle_Text);

		var strProjName = window.external.FindSymbol("PROJECT_NAME");

		var coll = document.all.tags("SYMBOL");

		var numSymbols = coll.length;

		for (i = 0; i < numSymbols; i++)

		{

			var obj = coll(i);

			if (typeof(obj.VALUE) == "undefined")

			{

				obj.VALUE = getval(obj, strProjName);

			}

		}

		SetLocaleForResources(window.external.GetSystemLCID());		

		window.external.SetDefaults(document);

		CreateGuids();

	}

	window.external.Load(document);

	InitControls();

}



function CreateGuids()

{

	var strGuid = window.external.CreateGuid();

	var strVal = window.external.FormatGuid(strGuid, 0);

	window.external.AddSymbol("LIBID_REGISTRY_FORMAT", strVal);

	strVal = window.external.FormatGuid(strGuid, 2);

	window.external.AddSymbol("LIBID_STATIC_CONST_GUID_FORMAT", strVal);

}



function InitControls()

{

	var L_DLLTYPEMFCSHARED_TEXT = "Create a regular DLL (MFC shared)";

	var L_DLLTYPEMFCLINKED_TEXT = "Create a regular DLL (MFC statically linked)";

	var L_DLLTYPEMFCEXTENSION_TEXT = "Create an MFC Extension DLL";

	if (window.external.FindSymbol("DLL_TYPE_REGULAR_STATIC"))

		DLLTYPE.innerText = L_DLLTYPEMFCLINKED_TEXT;

	else 

	{

		if (window.external.FindSymbol("DLL_TYPE_EXTENSION"))

			DLLTYPE.innerText = L_DLLTYPEMFCEXTENSION_TEXT;

		else

			DLLTYPE.innerText = L_DLLTYPEMFCSHARED_TEXT;

	}



	AUTOMATIONSUPPORT.parentNode.style.display = 'none';

	if (window.external.FindSymbol("AUTOMATION"))

	{

		var L_AUTOMATIONSUPPORT_TEXT = "Automation support";

		AUTOMATIONSUPPORT.innerText = L_AUTOMATIONSUPPORT_TEXT;

		AUTOMATIONSUPPORT.parentNode.style.display = 'block';

	}



	WINSOCKET.parentNode.style.display = 'none';

	if (window.external.FindSymbol("SOCKETS"))

	{

		var L_WINSOCKET_TEXT = "Windows sockets support";

		WINSOCKET.innerText = L_WINSOCKET_TEXT;

		WINSOCKET.parentNode.style.display = 'block';

	}

}



function Next(document, linkto)

{

	window.external.Next(document, linkto);

}



function OnFinish(document)

{

	OnWizFinish(document);

}



function getval(obj, strProjName)

{

	var SymbolValue = "";

	switch(obj.NAME)

	{

		case "SAFE_PROJECT_NAME":

			SymbolValue	= CreateSafeName(strProjName);

			break;

		case  "LIB_NAME":

			{

				var strSafeLibName = CreateSafeName(strProjName);

				for (n=0;n<10;n++)

				{

					if (strSafeLibName.substr(0,1) == n.toString())

						strSafeLibName = "My" + strSafeLibName;

				}

				SymbolValue = strSafeLibName;

			}

			break;

		case  "APP_CLASS":

			{

				var strSafeProjName = CreateSafeName(strProjName);

				SymbolValue = "C" + strSafeProjName + "App"; 

			}

			break;

		case  "CPU":

			SymbolValue = "i386"; 

			break;

		case  "HOST_CPU":

			SymbolValue = "X86"; 

			break;

		case  "YEAR":

			{

				d = new Date();

				SymbolValue = d.getFullYear().toString();

			}

			break;

		default:

			SymbolValue = "";

			break;

	}

	return (SymbolValue);

}



</SCRIPT>

<SCRIPT ID="INCLUDE_SCRIPT" LANGUAGE="JSCRIPT"></SCRIPT>

<SCRIPT ID="INCLUDE_COMMON" LANGUAGE="JSCRIPT"></SCRIPT>

<SCRIPT>

	var strPath = "../../../";

	strPath += window.external.GetHostLocale();

	var strScriptPath = strPath + "/Script.js";

	var strCommonPath = strPath + "/Common.js";

	document.scripts("INCLUDE_SCRIPT").src = strScriptPath;

	document.scripts("INCLUDE_COMMON").src = strCommonPath;

</SCRIPT>

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



Comments and Discussions