Шаг 34 - Идентификаторы элементов управления

Каждый элемент управления, помещенный на диалоговую панель имеет идентификатор. Посмотреть его можно через свойства элемента управления.

34_1.gif (7135 b)

Идентификатор начинается с приставки IDC_. Это для того, чтобы различать идентификаторы. Допустимые значения - 8 - 0xDFFF. VC++ автоматически присваивает значения и прописывает идентификаторы в файле resource.h.

#define IDC_BUTTON1   1003
#define IDC_EDIT1     1004
#define IDC_PROGRESS1 1005

Делает он это по порядку. Хотя порядок в результате всяких манипуляций может сбиться. Вы сами можете попробовать. Удалите описание IDC_EDIT1. И добавьте еще элементов. Вам кстати никто не мешает самому расставить необходимые цифровые значения по порядку. Это может быть очень полезно кстати. Но тут есть один интересный эффект. Вот есть описание ресурсов:

#define IDC_BUTTON1   1003
#define IDC_PROGRESS1 1004
#define IDC_EDIT2     1005
#define IDC_LIST1     1007
#define ID_TEST_TEST  32771

Расставляем по порядку:

#define IDC_PROGRESS1 1004
#define IDC_EDIT2     1005
#define IDC_LIST1     1006

Добавляем еще один:

#define IDC_EDIT2      1005
#define IDC_LIST1      1006
#define IDC_SCROLLBAR1 1008

Смотрите, добавлен не 7, а 8. То есть в VC++ где-то хранится число, относительно которого отсчитывается новый идентификатор. И данное число даже ни где-то храниться, а прямо в описании ресурсов. Под именем _APS_NEXT_CONTROL_VALUE. В самом низу файла resource.h:

// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_3D_CONTROLS                1
#define _APS_NEXT_RESOURCE_VALUE        131
#define _APS_NEXT_COMMAND_VALUE         32772
#define _APS_NEXT_CONTROL_VALUE         1012
#define _APS_NEXT_SYMED_VALUE           108
#endif
#endif

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 27.06.2002