c – resource.h中的宏用于什么?
在visual studio中创建资源文件时,IDE会自动生成一个名为resource.h的头文件,其中包含以下文本:
//{{NO_DEPENDENCIES}} // Microsoft Visual C++ generated include file. // Used by BackupRestore.rc // Next default values for new objects // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 101 #define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_CONTROL_VALUE 1001 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif 正如你可以看到它的评论并说它们是“新对象的默认值”.这到底是什么意思?默认情况下是否在其他地方引用它们,如果不是,它们将在何处使用?我正在尝试使用最少量的代码和文件创建一个项目,并且已经测试了删除resource.h文件,并且解决方案似乎在没有它的情况下构建正常,所以我想知道它是否必不可少或者如果删除它将导致未来的问题. 综上所述: 在此先感谢 – 请注意我是C和宏的新手. 解决方法
从
the documentation起
因此,如果您在实际的对话框编辑器中,当您单击一个新按钮(例如)时,它就是如何跟踪下一个可用资源ID.资源ID通常用于跟踪诸如静态文本(例如,用于字段标签),绑定等的事物. 如果您已经定义了资源ID,那么它必须是_APS_NEXT的较小值.例如,在您的resource.h中,您可能有 #define IDC_SOME_RADIO_BUTTON 1056 然后你必须更新 #define _APS_NEXT_CONTROL_VALUE 1057 再次这样,下次单击按钮时,它将获得唯一ID.它们必须是唯一的,因为它们只是在您尝试将该资源ID用于某些内容时将被替换的预处理器宏.例如 void HandleRadioButtion() { // do something important } 然后,您可以使用资源ID将其绑定到函数 BEGIN_MESSAGE_MAP(SomeDlg,CDialog) ON_BN_CLICKED(IDC_SOME_RADIO_BUTTON,HandleRadioButton) END_MESSAGE_MAP() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |