当前位置: 首页 > news >正文

【MFC】ID命名和数字约定

ID命名和数字约定

MFC ID 命名和数字约定需要满足以下要求:

  • 提供对 Visual C++ 资源编辑器支持的 MFC 库和 MFC 应用程序中使用的一致的 ID 命名标准。 这样就可以轻松地对程序员介绍了一种资源的类型和原点距其 ID 的.

  • 基础 ID 之间的某些类型的密切的一对一关系。

  • 符合已命名的 ID 的常用标准在窗口中。

  • 分区 ID 号空间。 ID 号可由程序员、 MFC、窗口和 visual C++ 编辑的资源分配。 相应分区将有助于避免 ID 号的副本。

    • ID 前缀命名约定
       

      ID 的几种类型的应用程序会发生此错误。 MFC ID 命名约定定义不同的资源类型的不同的前缀。

      使用 MFC 应用于多个资源类型的标题 “IDR_”表示资源 ID。 例如,对于特定框架窗口,则 MFC 使用同一 “IDR_”前缀指示菜单、快捷键、字符串和图标资源。 下表显示各标题和它们的用法:

      前缀

      使用

      IDR_

      对多个资源类型 (主要用于菜单、快捷键和功能区)。

      IDD_

      到对话框模板资源 (例如, IDD_DIALOG1)。

      IDC_

      为光标资源。

      IDI_

      为图标资源。

      IDB_

      向位图资源。

      IDS_

      为字符串资源。

       

       

       

       

       

       

       

       

       

      在对话框资源中, MFC 遵循以下约定:

      标题或标签

      使用

      IDOK, IDCANCEL

      对于标准普通按钮 ID。

      IDC_

      对于其他对话框控件。

       

       

       

       

       

      “IDC_”前缀对游标还使用。 ,因为典型的应用程序将有少量光标和许多对话框控件,此命名冲突通常不是问题。

       在菜单资源中, MFC 遵循以下约定:

      前缀

      使用

      IDM_

      对于不使用 MFC 命令体系结构的菜单项。

      ID_

      对于使用 MFC 命令体系结构的菜单命令。

       

       

       

       

       

      遵循 MFC 命令体系结构的命令必须具有 ON_COMMAND 命令处理程序,并且可能导致 ON_UPDATE_COMMAND_UI 处理程序。 如果这些命令处理程序遵循 MFC 命令体系结构,它们将正常工作是否绑定到菜单命令、工具栏按钮或对话栏按钮。 同一 “ID_”前缀用于在程序的消息栏显示菜单提示字符串还使用。 大多数在应用程序中的菜单项应遵循 MFC 命令约定。 所有标准命令 ID (例如, ID_FILE_NEW) 遵循此约定。

      MFC 还使用 “IDP_”,字符串的专用形式 (而不是 “IDS_”)。 与 “IDP_”前缀的字符串是提示,也就是说,用于消息框的字符串。" IDP_”字符串可以包含 “%1 " 和 “%2 " 作为程序依赖的字符串占位符。" IDP_”字符串通常具有帮助主题与它们关联,因此, “IDS_”字符串不。" IDP_”字符串始终本地化,, “IDS_”字符串可能不本地化。

      MFC 库还使用 “IDW_”前缀,控件 ID 的专用形式 (而不是 “IDC_”)。 这些 ID 分配给子窗口 (如视图和拆分由 framework 类。 MFC 实现 ID (以 “AFX_”。

      ID 号约定
       
         下表列出了特定类型的 ID 的有效范围。 某些限制是技术实现限制,同时,其他是旨在防止您的 ID 冲突与 windows 预定义的 ID 或 MFC 默认实现的约定。

      强烈建议您定义了建议的范围内的所有 ID。 ,因为没有使用,这些范围下限为 1 0。 建议您使用公共约定并使用 100 或 101 作为第一个 ID.

      前缀

      资源类型

      有效范围

      IDR_

      多个

      1 到 0x6FFF

      IDD_

      对话框模板

      1 到 0x6FFF

      IDC_, IDI_, IDB_

      光标,图标,位图

      1 到 0x6FFF

      IDS_, IDP_

      一般字符串

      1 到 0x7FFF

      ID_

      命令

      0x8000 到 0xDFFF

      IDC_

      控件

      8 到 0xDFFF

       

       

       

       

       

       

       

       

       

      这些原因的范围限制:

      • 按照约定,不使用 ID 值为 0。

      • 窗口实现限制限制为 true 的资源 ID 小于或等于 0x7FFF。

      • MFC 的内部结构实现保留两个范围:0x7000 通过 0x7FFF 和 0xE000 通过 0xEFFF。

      • 有些 windows 系统命令通过 0xFFFF 使用 0xF000 的大小。

      • 控件 ID 1 到 7 为标准控件是保留的例如 IDOK 和 IDCANCEL。

      • 0x8000 的范围传递字符串的 0xFFFF 为菜单提示是保留的输入命令。

      参考原文:http://technet.microsoft.com/zh-cn/library/t2zechd4(v=vs.110).aspx

相关文章:

  • oracle判断视图或者表名存在删除不存在不删除
  • MYSQL 中的变量
  • 记录一些好的Java学习网站
  • c#应用程序如何添加弹出式广告功能
  • javascript函数库
  • 调试时重新生成代码
  • php 多维数组 arrayList array()
  • linux常用命令加实例大全
  • [Ruby on Rails系列]4、专题:Rails应用的国际化[i18n]
  • 去掉文本框的自动提示
  • oVirt专题:Hosted Engine之Engine Appliance使用(2)
  • MSA2000命令行配置信息
  • linux下的apache部署ssl证书
  • Ubuntu下deb包的安装方法
  • 个人网站转移
  • 《深入 React 技术栈》
  • 0基础学习移动端适配
  • bootstrap创建登录注册页面
  • centos安装java运行环境jdk+tomcat
  • CSS盒模型深入
  • ES6--对象的扩展
  • js面向对象
  • js算法-归并排序(merge_sort)
  • Promise面试题2实现异步串行执行
  • Python中eval与exec的使用及区别
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • 大快搜索数据爬虫技术实例安装教学篇
  • 高性能JavaScript阅读简记(三)
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 那些年我们用过的显示性能指标
  • 爬虫模拟登陆 SegmentFault
  • 自定义函数
  • Android开发者必备:推荐一款助力开发的开源APP
  • %@ page import=%的用法
  • (a /b)*c的值
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (附源码)ssm高校实验室 毕业设计 800008
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (数位dp) 算法竞赛入门到进阶 书本题集
  • (学习日记)2024.02.29:UCOSIII第二节
  • (转)3D模板阴影原理
  • (转)linux 命令大全
  • *p++,*(p++),*++p,(*p)++区别?
  • .net core使用ef 6
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .Net(C#)自定义WinForm控件之小结篇
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .NET中 MVC 工厂模式浅析
  • .Net中wcf服务生成及调用
  • .skip() 和 .only() 的使用