Single document interface和Multiple document interface
https://en.wikipedia.org/wiki/Single_document_interface
https://msdn.microsoft.com/en-us/library/b2kye6c4.aspx
SDI applications allow only one open document frame window at a time.
It's made up of one or more independent windows, which appears separately on the windows desktop.
An example of this would be a simple text document(Notepad).
MDI applications allow multiple document frame windows to be open in the same instance of an application.
An MDI application has a window within which multiple MDI child windows, which are frame windows themselves, can be opened, each containing a separate document.
In some applications, the child windows can be of different types, such as chart windows and spreadsheet电子制表软件 windows.
In that case, the menu bar can change as MDI child windows of different types are activated.
https://en.wikipedia.org/wiki/Multiple_document_interface
Comparison with single document interface
In the usability community, there has been much debate about whether the multiple document or single document interface is preferable.
Software companies have used both interfaces with mixed responses.
For example, Microsoft changed its Office applications from SDI to MDI mode and then back to SDI, although the degree of implementation varies from one component to another.
SDI can be more useful in cases where users switch more often between separate applications than among the windows of one application.
The disadvantage of MDI usually cited引用 is its lack of information about the currently opened windows:
In MDI applications, the application developer must provide a way to switch between documents or view a list of open windows, and the user might have to use an application-specific menu ("window list" or something similar) to switch between open documents.
This is in contrast to SDI applications, where the window manager's task bar or task manager displays the currently opened windows.
However, in recent years it has become increasingly common for MDI applications to use "tabs" to display the currently opened windows, which has made this criticism somewhat obsolete.
An interface in which tabs are used to manage open documents is referred to as a "tabbed document interface" (TDI).
Another option is "tiled" panes or windows, which make it easier to prevent content from overlapping重叠.
Some applications allow the user to switch between these modes at their choosing, depending on personal preference or the task at hand.
Nearly all graphical user interface toolkits to date provide at least one solution for designing MDIs, with an exception being Apple's Cocoa API.
The Java GUI toolkit, Swing, for instance, provides the classjavax.swing.JDesktopPane which serves as a container for individual frames (class javax.swing.JInternalFrame).
GTK+ lacks any standardized support for MDI.
Single document interface和Multiple document interface的更多相关文章
- document.documentElement.clientHeight 与 document.body.clientHeight(杜绝千篇一律的抄袭!!)
document.documentElement.clientHeight 与 document.body.clientHeight用来获取页面可视高度我觉得有点问题.这两个应该不是一个东西. 页面中 ...
- 火狐、谷歌、IE关于document.body.scrollTop和document.documentElement.scrollTop 以及值为0的问题
一.先遇到document.body.scrollTop值为0的问题 做页面的时候可能会用到位置固定的层,读取document.body.scrollTop来设置层的位置,像这样, window.on ...
- [No000068]document.body.clientHeight 和 document.documentElement.clientHeight 的区别
document.body.clientWidth ==> BODY对象宽度 document.body.clientHeight ==> BODY对象高度 document.docume ...
- 【Go入门教程6】interface(interface类型、interface值、空interface{}、嵌入interface、反射)
interface Go语言里面设计最精妙的应该算interface,它让面向对象,内容组织实现非常的方便,当你看完这一章,你就会被interface的巧妙设计所折服. 什么是interface 简单 ...
- document.body.scrollTop or document.documentElement.scrollTop
用Javascript获取DOM节点相对于页面的绝对坐标时,需要计算当前页面的滚动距离,而这个值的获取又取决于浏览器. 在Firefox或Chrome浏览器的控制台可以查看document.bod ...
- document.body.clientHeight和 document.documentElement.clientHeight 的区别
1.javascript中的 document.body.clientHeight 和 document.documentElement.clientHeight 的区别 在往同事负责的页面添加我的功 ...
- 详解;(function ($,window,document,undefined){...})(jQuery,window,document);
1.代码最前面的分号,可以防止多个文件压缩合并以为其他文件最后一行语句没加分号,而引起合并后语法错误. 2.匿名函数(function(){})();:由于Javascript执行表达式是从圆括号里面 ...
- document.body.clientHeight与document.documentElement.clientHeight
当你的网页有: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...
- document.body.scrollTop vs document.documentElement.scrollTop && document.body.scrollHeight vs document.documentElement.scrollHeight
FireFox下 document.body.scrollHeight || document.documentElement.scrollHeight;//等价 document.body.scro ...
随机推荐
- mysql外键创建失败原因
引用:http://blog.csdn.net/wangpeng047/article/details/19624351 首先,如果和外键相关的几张表中已经插入了数据,可能导致外键插入的失败 在MyS ...
- Android sensor 系统框架 (二)
连载上一篇http://www.cnblogs.com/hackfun/p/7327320.html (D) 如何加载访问.so库 在前一篇博客http://www.cnblogs.com/hackf ...
- Android studio & SDK的国内有效站点。
SDK.TOOLS的国内有效镜像节点: mirrors.zzu.edu.cn/android/repository/ 网上的地址只写了mirrors.zzu.edu.cn,有误,需要补齐后面的子目录才 ...
- TensorFlow: Could not load requested Qt binding.
使用Eclipse 引入tensorflow,出现 Could not load requested Qt binding. 问题 ImportError: Could not load reque ...
- C# 获得星期几
var temp = System.DateTime.Today.ToString("dddd", new System.Globalization.CultureInfo(&qu ...
- vue04 组件化开发 Vue自动化工具
5. 组件化开发 5.1 组件[component] 组件(Component)是自定义封装的功能.在前端开发过程中,经常出现多个网页的功能是重复的,而且很多不同的网站之间,也存在同样的功能. 而在网 ...
- vim三种模式
一般模式 以vi打开一个文件就直接进入一般模式了.一般模式下可以移动光标查看内容,通过ESC回到一般模式. 一般模式下常用的操作: 撤销与重做 命令 说明 u 复原上一个操作 . 小数点 重复上一个操 ...
- win10安装mysql 8.0.11
mysql安装包可到官网下载,地址:https://dev.mysql.com/downloads/mysql 1.首先解压文件包,我这解压到E:\install_work\mysql目录下: 2.发 ...
- react typescript 子组件给父组件传值
//父组件 import * as React from 'react'import { Input } from 'antd'const Search = Input.Searchimport &q ...
- 内核调试-perf introduction
perf概念 perf_event Perf_events是目前在Linux上使用广泛的profiling/tracing工具,除了本身是内核(kernel)的组成部分以外,还提供了用户空间(user ...