Resource.h

本文档定义了Windows Camera应用程序的资源标识符,包括对话框、菜单项、图标等元素的ID,以及为新对象设置的默认值。
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by wincamera.rc
//
#define IDD_WINCAMERA_DIALOG            102
#define IDS_APP_TITLE                   103
#define IDM_ABOUT                       104
#define IDM_EXIT                        105
#define IDI_WINCAMERA                   107
#define IDI_SMALL                       108
#define IDC_WINCAMERA                   109
#define IDR_MAINFRAME                   128
#define ID_Menu                         32771
#define ID_PREVIEW                      32772
#define IDM_PREVIEW                     32773
#define IDM_STOP                        32774
#define IDM_PLAY                        32775
#define ID_ACCPREVIEW                   32776
#define ID_ACCSTOP                      32778
#define ID_ACCPLAYORSTOP                32778
#define IDC_STATIC                      -1


// Next default values for new objects
// 
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NO_MFC                     1
#define _APS_NEXT_RESOURCE_VALUE        129
#define _APS_NEXT_COMMAND_VALUE         32780
#define _APS_NEXT_CONTROL_VALUE         1000
#define _APS_NEXT_SYMED_VALUE           110
#endif
#endif
<think>我们需要在Resource.h中定义对话框资源中使用的控件ID。根据前面的对话框资源描述,我们需要定义以下ID: IDD_LOADPORTDEBUG_DIALOG - 对话框资源ID IDC_COMBO_LOADPORTS - Loadport选择组合框 IDC_EDIT_DEBUG_OUTPUT - 调试信息输出编辑框 IDC_BUTTON_CLEAR - 清除输出按钮 此外,我们还需要定义动态按钮的起始ID(ACTION_BUTTON_START_ID)为1000,但注意在Resource.h中我们只需要定义常量,而动态按钮的ID在代码中已经用常量定义,不需要在Resource.h中定义。 因此,在Resource.h中添加如下内容(注意:ID值需要确保不冲突):</think>### Resource.h 修改说明 在 MFC 项目中,`Resource.h` 文件用于定义资源 ID。根据前面的对话框设计,需要添加以下资源 ID 定义: ```cpp //{{NO_DEPENDENCIES}} // Microsoft Visual C++ 生成的包含文件。 // 供 LoadportDebug.rc 使用 // #define IDD_LOADPORTDEBUG_DIALOG 102 // 主对话框ID #define IDC_COMBO_LOADPORTS 1001 // Loadport选择框 #define IDC_EDIT_DEBUG_OUTPUT 1002 // 调试信息输出框 #define IDC_BUTTON_CLEAR 1003 // 清除输出按钮 #define ACTION_BUTTON_START_ID 1100 // 动作按钮起始ID (1100~1119) // Next default values for new objects #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 103 #define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_CONTROL_VALUE 1004 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif ``` ### 关键修改说明: 1. **主对话框 ID** ```cpp #define IDD_LOADPORTDEBUG_DIALOG 102 ``` 这是对话框资源的唯一标识符,需要与 `.rc` 文件中的定义一致 2. **控件 ID 范围** ```cpp #define IDC_COMBO_LOADPORTS 1001 #define IDC_EDIT_DEBUG_OUTPUT 1002 #define IDC_BUTTON_CLEAR 1003 ``` 为三个静态控件分配唯一ID(组合框、编辑框、清除按钮) 3. **动态按钮 ID 范围** ```cpp #define ACTION_BUTTON_START_ID 1100 ``` 动态按钮使用 1100-1119 的ID范围(共20个按钮),代码中通过常量计算: ```cpp const UINT ACTION_BUTTON_START_ID = 1100; const UINT ACTION_BUTTON_END_ID = 1119; ``` 4. **资源值更新** ```cpp #define _APS_NEXT_CONTROL_VALUE 1004 ``` 这个值表示下一个可用的控件ID,确保新添加控件不会ID冲突 ### 完整 Resource.h 示例 假设这是新项目的初始状态: ```cpp //{{NO_DEPENDENCIES}} // Microsoft Visual C++ generated include file. // Used by LoadportDebug.rc #define IDD_LOADPORTDEBUG_DIALOG 102 #define IDR_MAINFRAME 128 // 主对话框控件 #define IDC_COMBO_LOADPORTS 1001 #define IDC_EDIT_DEBUG_OUTPUT 1002 #define IDC_BUTTON_CLEAR 1003 // 动作按钮ID范围 (1100-1119) #define ACTION_BUTTON_START_ID 1100 // Next default values for new objects #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 130 #define _APS_NEXT_COMMAND_VALUE 32771 #define _APS_NEXT_CONTROL_VALUE 1004 // 下一个可用控件ID #define _APS_NEXT_SYMED_VALUE 110 #endif #endif ``` ### 使用注意事项: 1. **ID 冲突检查** 如果项目中已有其他资源,需要确保这些ID没有重复 ```cpp // 检查冲突的快速方法: #if defined(IDC_COMBO_LOADPORTS) #error "IDC_COMBO_LOADPORTS already defined!" #endif ``` 2. **资源编辑器同步** 在Visual Studio资源编辑器中操作后,会自动更新: - `Resource.h` 中的ID定义 - `.rc` 文件中的资源描述 - 类向导生成的代码 3. **动态控件ID最佳实践** ```cpp // 在代码中定义常量而不是直接使用数字 const UINT BTN_ID = ACTION_BUTTON_START_ID + index; ``` 4. **资源ID命名规范** 建议使用有意义的名称前缀: - `IDC_` 表示控件 (Control) - `IDD_` 表示对话框 (Dialog) - `IDR_` 表示资源 (Resource) ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值