亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? msdi.shtml.htm

?? 隨書類文件![隨書類]MFC_SOURCEBOOK
?? HTM
字號:
<HTML>
<HEAD>
   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
   <META NAME="Author" CONTENT="Zafir Anjum">
   <TITLE>Doc/View - MultiSingle (MSDI) Document interface</TITLE>
</HEAD>
<body background="../fancyhome/back.gif" tppabs="http://www.codeguru.com/fancyhome/back.gif" bgcolor="#FFFFFF" link="#B50029" vlink="#8E2323" alink="#FF0000">
<table WIDTH="100%">
<tr WIDTH="100%">
<td><td>
</tr>
</table>


<CENTER>
<H3>
<FONT COLOR="#AOAO99">MultiSingle (MSDI) Document interface</FONT></H3></CENTER>

<CENTER>
<H3>

<HR></H3></CENTER>
This article was contributed by <A HREF="mailto:jclanz@bluewin.ch">Lanz Jean-Claude</A>.

<P><A HREF="msdi1632.zip" tppabs="http://www.codeguru.com/doc_view/msdi1632.zip">Download files</A> 77K.

</FONT><I><FONT FACE="Arial"><P><b>What is a MultiSingle document.</b></P>
</B></I></U><P>In most applications, it is necessary to have one document with many views. The <B>SDI</B> architecture is for one document and one view and the <B>MDI</B> architecture is for many documents with many views.  My goal is to have an <B>MDI</B> architecture with one document and many views connected or not to the document. If a chose the <B>'new'</B> file command, all views must close and a new document with the fist doc template view must be started. If a chose the <B>'close' </B>file command, all views must close and the client area must be empty. Views not attached to the document (attached to the main frame) can live. If the system menu <B>'close' </B>command of a child window is actived, the child window will close. If this is the main view (1<SUP>st</SUP> doc template) the effect is the same as if you select the <B>'close' </B>command of the file menu.</P>

<P>This sample is an <B>MSDI</B> application with three views. The 1<SUP>st</SUP> view is the main document view derived from CFormView. It must be the 1<SUP>st</SUP> doc template view. The 2<SUP>nd</SUP> view is a simple drawing derived from CView and is attached to the document. The 3<SUP>rd</SUP> view is a COutView derived from CEditView. This view is not a document view and is not closed with the document <B>'Close'</B> command. It can be opened without document. To close this view, use the system menu of the child window or the close button.</P>
<P> </P>
<P>To open these Views, the commands are implemented in the <B>'View'</B> menu. The document class is responsible to open the document views and the mainframe classe is responsible to open the other views. For the <B>COutView</B>, an other menu is used with new commands to demonstrate the possibilities of <B>MSDI</B>.</P>

<P>The <B>'New window'</B> command in the <B>'Window'</B> menu open only new windows if the view is connected to the document. If the view is not attached to the document, it can't open a second view. You can change this as you like, see the <B>CMSDIViewFrame</B> class.</P>

<P>It is not possible to open more than one view of the same class if the view is attached to the document with the <B>'Create view'</B> command. The function CreateOrActivateFrame checks if the view exist and active it. You can change this if you wish more than one view of the same class.</P>

<P>For independant views (not attached to the document), it is complicate to check if exist because we can't walk trough the views with a document pointer. So we must save the view pointer in the MainFrame and reset it when the COutView::OnDestroy() is called.</P>

<P>The ressource ID will be used to change the view title (the first resource substring). If you have different ressource ID for your views, you can change the menu too. If no menu nor accelerator table is defined for a ressource ID, the derived child window <B>CMSDIViewFrame</B> witch is the base frame class for all child frames exept the fist (<B>CMSDIFirstFrame</B>), will connect to the menu and accelerator of the fist view. It will use the fist ressource substring for the window title.</P>

<P>The <B>CMSDIFirstFrame </B>window class is the base frame class for the main view. It call the application to close all document views if it is closed.</P>
<B><I><U><P>Build MultiSingle (MSDI) document-view with AppWizard.</P>

<UL TYPE="SQUARE">
</B></I></U><LI>Create an <B>MDI</B> application with AppWizard (in this sample, an <B>"msdi"</B> application).</LI>
<LI>Include<B> msdiapp.h</B>, <B>msdifrm.h</B> &amp;<B> msdivfrm.h</B> in <B>stdafx.h</B> or your library include file. These files will not change and are the only files neded to create an <B>MSDI</B> application.</LI>
<LI>Add <B>msdiapp.cpp</B>, <B>msdifrm.cpp </B>&amp;<B> msdivfrm.cpp</B> in your project or your library in linker option.</LI>
<LI>Derive your <B>CMsdiApp</B> from <B>CMSDIWinApp</B> and not from <B>CWinApp</B>, Replace All <B>CWinApp</B> with <B>CMSDIWinApp</B> in <B>msdi.cpp</B> &amp; <B>msdi.h</B>.</LI>
<LI>Delete the <B>ON_COMMAND</B> for <B>ID_FILE_NEW</B> &amp; <B>ID_FILE_OPEN</B> in <B>msdi.cpp</B>.</LI>
<LI>Replace the Frame classe <B>CMDIChildWnd</B> in the creation of the doc template with the <B>CMSDIFirstFrame</B> class to avoid closing the document with views remaining open.</LI></UL>


<P>At this point, the <B>MSDI</B> application work fine. We must now implement the build of multiple views. The best way to do this is to add doc templates like Microsoft in the CHKBOOK sample and make change to the doc string (the third substring) to avoid the <B>MDI</B> Document dialog box.</P>


<UL TYPE="SQUARE">
<LI>With the application studio, add your views creation commands in the <B>'View'</B> menu.</LI>
<LI>Add document string for your views like this <B>"ViewTitle</FONT><FONT FACE="Courier New" SIZE=2>\n\n\n\n\n\n</FONT><FONT FACE="Arial" SIZE=2>"</B>. In this sample <B>IDR_GRAFTYPE</B> &amp; <B>IDR_OUTTYPE</B> are the new ressource-ID.</LI>
<LI>Make a copy of the <B>MDI</B> icone for all new ressource-ID. You can change this icone as you like.</LI>
<LI>If necessary, make a copy of the main view menu and change it according to the new view commands.</LI>
<LI>With appwizard, map the messages to the document classe or the mainframe class.</LI>
<LI>Edit the new fuctions and add the view creation. Use <B>NULL</B> for the doc parameter of <B>CreateOrActivateFrame</B> if the view is not a document view.</LI>
<LI>Add the include files for your new views in your document class file <B>msdidoc.cpp</B>, in the <B>mainfrm.cpp</B> if necessary and  in your application file <B>msdi.cpp</B> for doc template creation.</LI>
<LI>Add the doc templates creation in your application file <B>msdi.cpp</B>. Use the <B>CMSDIViewFrame</B> classe to have a new frame title for all views. Give the new ressource-ID for all views.</LI></UL>

<B><I><U><P>MSDI with Visual C++4.0.</P>
</B></I></U><P>For Visual C++ 4.0, we must remove two functions and make litle change (see <B>WIN32</B>). These functions exist in the Win32 implementation of MFC.</P>
<B><I><U><P>Change between Versions.</P>
</B></I></U><P>Version 1.0. Uploaded as MSDI.ZIP</P><DIR>
<DIR>

<P>First implementation of the <B>MSDI </B>Multi(View) Single(Doc) Document Interface.</P></DIR>
</DIR>

<P>Version 1.1 (Oct 19 1996) (Uploaded as MSDI32.ZIP</P><DIR>
<DIR>

<P>Adding <B>OnDestroy()</B> in the <B>COutView</B> and call the <B>CMainFrame::OnDestroyView()</B> to clear the view pointer.</P><DIR>
<DIR>

<P>Version 1.2 (Oct 22 1996) Uploaded as MSDI1632.ZIP</P></DIR>
</DIR>

<P>Change name of classe CMSDIFrame to CMSDIFirstFrame.</P>
<P>Change name of classe CViewFrame to CMSDIViewFrame and files viewfrm.* to msdivfrm.*</P>
<P>Implement <B>OnSysCommand()</B> in the <B>CMSDIFirstFrame</B> to close all views if the main view is closed. Call an override function in the class CMSDIWinApp. You can change the behaviour of the first frame system menu close.</P>
<P>Implement <B>OnCreate()</B> in the <B>CMSDIViewFrame</B> for frame with no menu nor accelerator table.</P>
<P>Implement <B>OnUpdateViewView2()</B> to disable the create menu command if the view exist.</P>
<P>Set read only to TRUE in <B>OnInitialUpdate()</B> for the <B>COutView</B>.</P>
<P>Replace the <B>CMSDIWinApp::SaveModified()</B> function name with the name <B>CloseDocument()</B> and make the fuction virtual.</P>
<P>Replace the name <B>CMultiSingleDocTemplate</B> with <B>CMSDITemplate</B>.</P>
<P>Implement the <B>ON_WINDOW_NEW</B> message to create new windows for all view connected to the document. Implement the <B>OnUpdateFrameTitle()</B> to update the frame titel accordingly.</P>
<P>Add a new function <B>GetDocTemplate()</B> to the <B>CMSDIWinApp</B> to retreive the <B>CMSDITemplate*</B> with a <B>CView*</B> as parameter.</P></DIR>
</DIR>

<B><I><U><P>Problems.</P>
</B></I></U><P>For all child windows, a new icon is defined, but the framework display the MFC icon for the main view and the same icon for the graf and output view. I have tryed to change the class and connect the right icon, but the code is to complicate for a generic application.</P>
<B><I><U><P>Future.</P>
</B></I></U><P>I'm sure you will have many applications with the <B>MSDI</B> interface. If you have some questions or if you have significant generic add on, please contact me.</P>










<P>
<HR>
<TABLE BORDER=0 WIDTH="100%" >
<TR>
<TD WIDTH="33%"><FONT SIZE=-1><A HREF="../index.htm" tppabs="http://www.codeguru.com/">Goto HomePage</A></FONT></TD>

<TD WIDTH="33%">
<CENTER><FONT SIZE=-2>&copy; 1997 Zafir Anjum</FONT>&nbsp;</CENTER>
</TD>

<TD WIDTH="34%">
<DIV ALIGN=right><FONT SIZE=-1>Contact me: <A HREF="mailto:zafir@home.com">zafir@home.com</A>&nbsp;</FONT></DIV>
</TD>
</TR>
</TABLE>
<CENTER><FONT SIZE=-2>7773</FONT></CENTER>
</BODY>
</HTML>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本亚洲免费观看| 国产ts人妖一区二区| 中文字幕不卡三区| 欧美日韩激情在线| 99久久婷婷国产综合精品电影| 丝袜诱惑亚洲看片| 中文字幕中文字幕一区| 欧美电视剧在线观看完整版| 欧美日韩精品系列| 成人av在线一区二区| 国产永久精品大片wwwapp| 亚洲成人av在线电影| 亚洲人成精品久久久久| 久久久亚洲精品石原莉奈| 日韩一级免费一区| 欧美亚洲综合在线| 99re热视频这里只精品| 国产精品正在播放| 麻豆成人久久精品二区三区红 | 欧美羞羞免费网站| 懂色av一区二区夜夜嗨| 久草在线在线精品观看| 日韩精品福利网| 亚洲成av人片| 亚洲线精品一区二区三区| 亚洲精品第一国产综合野| 国产精品乱子久久久久| 久久―日本道色综合久久| 欧美成人一区二区三区 | 1000部国产精品成人观看| 久久久亚洲精华液精华液精华液 | 欧美午夜在线观看| 99久久综合狠狠综合久久| 国产91精品久久久久久久网曝门| 狠狠色丁香婷综合久久| 国产专区综合网| 国产一区欧美日韩| 精品一区二区三区视频在线观看| 六月丁香婷婷久久| 久久精品噜噜噜成人av农村| 乱一区二区av| 久久精品国产**网站演员| 精品亚洲欧美一区| 狠狠色丁香婷婷综合久久片| 国产精品一区二区在线看| 国内精品写真在线观看| 国产一区二区电影| 成人午夜激情影院| 白白色 亚洲乱淫| 色呦呦国产精品| 欧美性三三影院| 884aa四虎影成人精品一区| 91精品国产综合久久久久| 日韩欧美国产麻豆| 国产欧美中文在线| 亚洲欧美一区二区视频| 亚洲国产美女搞黄色| 天天综合天天综合色| 麻豆精品新av中文字幕| 国产成人午夜精品影院观看视频| 成年人国产精品| 色嗨嗨av一区二区三区| 91麻豆精品国产自产在线观看一区 | 欧美视频一区二区在线观看| 欧美精品高清视频| 久久影院电视剧免费观看| 中文字幕第一区| 亚洲国产精品视频| 麻豆91免费看| 成人午夜精品在线| 欧美日本韩国一区二区三区视频| 日韩免费看的电影| 18成人在线观看| 轻轻草成人在线| 成人黄色免费短视频| 欧美日韩免费在线视频| 精品成人一区二区三区| 亚洲美女区一区| 久久精品国产**网站演员| 92精品国产成人观看免费| 日韩午夜精品视频| 中文字幕一区在线观看视频| 视频在线观看一区二区三区| 国产成人午夜精品5599| 欧美日韩在线观看一区二区| 欧美国产1区2区| 亚洲国产精品视频| 成人av影视在线观看| 91精品国产一区二区三区| ●精品国产综合乱码久久久久 | 裸体健美xxxx欧美裸体表演| 成人中文字幕合集| 91精品免费在线观看| 自拍偷拍国产精品| 黑人精品欧美一区二区蜜桃| 在线观看一区日韩| 国产亚洲精品aa| 日本三级韩国三级欧美三级| 91在线观看下载| 久久久久久久综合| 日韩激情av在线| 一本大道综合伊人精品热热| 国产喷白浆一区二区三区| 日本午夜一本久久久综合| 91高清在线观看| 国产精品二区一区二区aⅴ污介绍| 免费一级欧美片在线观看| 在线影视一区二区三区| 中文字幕一区二区日韩精品绯色| 激情综合色播激情啊| 欧美精品在线观看播放| 亚洲一区在线看| 91色九色蝌蚪| 国产精品网站导航| 国产成人精品免费网站| 欧美大片拔萝卜| 日本不卡在线视频| 欧美日韩亚洲综合在线 | 欧美国产一区在线| 精品一区二区三区免费观看| 欧美精选一区二区| 亚洲大片免费看| 欧美在线视频不卡| 老司机免费视频一区二区| 91香蕉视频mp4| 国产精品毛片高清在线完整版| 国产高清精品网站| 欧美精品一区二区三区四区| 久久不见久久见免费视频7| 3d动漫精品啪啪| 人禽交欧美网站| 欧美一区二区三区性视频| 三级一区在线视频先锋 | 蜜臂av日日欢夜夜爽一区| 在线不卡中文字幕播放| 午夜精品久久久久久久| 欧美性色欧美a在线播放| 亚洲高清中文字幕| 欧美猛男gaygay网站| 天天av天天翘天天综合网| 欧美三级视频在线| 日本特黄久久久高潮| 日韩欧美亚洲另类制服综合在线| 老色鬼精品视频在线观看播放| 日韩欧美aaaaaa| 国产精品一二二区| 亚洲国产成人午夜在线一区| 99精品视频一区| 亚洲黄一区二区三区| 欧美剧在线免费观看网站| 蜜桃精品视频在线| 久久久美女艺术照精彩视频福利播放| 国产精品资源站在线| 综合分类小说区另类春色亚洲小说欧美| 91老师国产黑色丝袜在线| 亚洲一区免费在线观看| 91精品免费在线观看| 国产真实乱对白精彩久久| 国产精品乱码妇女bbbb| 色婷婷一区二区三区四区| 日韩成人一级片| 国产婷婷一区二区| 91久久国产最好的精华液| 日韩成人一级片| 欧美激情一区二区| 欧美日韩一区二区不卡| 国产尤物一区二区在线| 亚洲黄一区二区三区| 欧美情侣在线播放| 国产麻豆视频一区二区| 亚洲免费在线播放| 欧美va亚洲va香蕉在线| 91麻豆免费看片| 蜜臀久久99精品久久久久久9| 国产欧美日韩另类一区| 色欧美片视频在线观看在线视频| 蜜臀av一区二区三区| 中文字幕一区二区不卡| 69堂亚洲精品首页| 99精品桃花视频在线观看| 日本不卡一区二区三区| 国产精品热久久久久夜色精品三区| 欧美色视频在线| 国产精品一区二区x88av| 一区二区三区影院| 久久综合九色综合97婷婷| 欧美影院一区二区| 国产99久久久久久免费看农村| 亚洲夂夂婷婷色拍ww47 | 中文字幕精品三区| 在线不卡免费欧美| 99国产麻豆精品| 国内精品免费**视频| 亚洲图片欧美色图| 国产精品青草久久| 日韩女优毛片在线| 欧美区在线观看| 在线亚洲一区二区| 不卡视频一二三| 黄网站免费久久|