第二十一章
第二十一章 设计细节：控件和对话框
  控件
    命令控件
      按钮
      图标按钮
      超链接
    选择控件
      复选框
      开关按钮
      状态切换按钮：一种应该避免的选择习惯用法
      单选按钮
      开关
      组合图标按钮
    列表控件
      做记号
      从列表中拖放
      列表排序
      列表中的水平滚动
      在列表中输入数据
      下拉列表和弹出列表
      组合框
      树形控件
    输入控件
      有界输入控件和无界输入控件
      微调器
      刻度盘和滑块
      拇指轮
      其他有界输入控件
      无界输入：文本编辑控件
    验证输入控件
      主动验证和被动验证
      暗示
      处理出界数据
      单位和度量
      不要使用文本编辑控件输出
    显示控件
      文本控件
      滚动条
      分割线
      抽屉和拉动杆
  对话框
    合理运用对话框
    对话框的基本交互
    模态和非模态对话框
      区分模态对话框和非模态对话框
      模态对话框的问题
      非模态对话框的问题
      非模态对话框和撤销
      非模态对话框和边栏
    对话框的五个目的
      属性对话框
      功能对话框
      进度对话框
      通知对话框
      公告对话框
    管理属性对话框和功能对话框
      选项卡对话框
      扩展对话框
      级联对话框
  消除错误、警告和确认
    错误对话框
      错误对话框有什么问题
      到底是谁的错
      错误消息不管用
      如何消除错误消息
      让错误不可能发生
      正面反馈
      难道就没有特例吗？
      改进错误消息：最后一招
    警告和确认
      警告：此地无银三百两
      如何消除警告
      确认：喊“狼来了”的对话框
      如何消除确认对话框
  魔鬼在细节里
  设计原则
    链接用于导航，按钮用于动作
    用图标来区分列表中重要的文本项
    绝不要水平滚动文本
    有界输入要使用有界控件
    仅供输出的文本用非编辑控件(显示控件)显示
    把主要的交互操作放在主窗口内
    对话框适用于放那些主交流之外的功能
    对话框非常适合用来整理关于单一主题或应用程序功能的信息
    在功能对话框的标题中使用动词
    在属性对话框的标题中使用对象的名字
    区别对待模态对话框与非模态对话框
    不要在非模态对话框中使用终止命令按钮
    不要动态地改变终止命令按钮的标签
    应用程序无响应状态，必须通知用户
    绝不要用临时型对话框作为错误对话框或确认对话框
    所有交互的习惯用法都有其适用范围
    不要堆叠选项卡
    错误对话框愚蠢地停止进度，应该避免
    让错误不可能发生
    当软件告诉用户他们失败时，用户会觉得很没面子
    做，不要问
    让所有的动作都可以撤销
    给用户提供非模态反馈，避免用户犯错