Конструируем облик страницы свойств
Таблица 9.1. Идентификаторы элементов управления.
| Элемент | Идентификатор | 
|---|---|
| / Диалог | IDD_PROPDLG | 
| Ползунок Общая в группе Освещенность | IDC_AMBIENT | 
| Ползунок Рассеянная в группе Освещенность | IDC_DIFFUSE | 
| Ползунок Отраженная в группе Освещенность | IDC_SPECULAR | 
| Text справа от Общая в группе Освещенность | IDC_AMB_TEXT | 
| Text справа от Рассеянная в группе Освещенность | IDC_DIFFUSE_TEXT | 
| Text справа от Отраженная в группе Освещенность | IDC_SPECULAR_TEXT | 
| Ползунок Общая в группе Материал | IDC_AMBMAT | 
| Ползунок Рассеянная в группе Материал | IDC_DIFFMAT | 
| Ползунок Отраженная в группе Материал | IDC.SPECMAT | 
| Text справа от Общая в группе Материал | IDC_AMBMAT_TEXT | 
| Text справа от Рассеянная в группе Материал | IDC_DIFFMAT_TEXT | 
| Text справа от Отраженная в группе Материал | IDC_SPECMAT_TEXT | 
| Ползунок Блестскость | IDC_SHINE | 
| Ползунок Эмиссия | IDC.EMISSION | 
| Text справа от Блестскость | IDC_SHINE_TEXT | 
| Text справа от Эмиссия | IDC_EMISSION_TEXT | 
| Ползунок X | IDC_XPOS | 
| Ползунок Y | IDC.YPOS | 
| Ползунок Z | IDC_ZPOS | 
| Text справа от X | IDC_XPOS_TEXT | 
| Text справа от¥ | IDC_YPOS_TEXT | 
| Text справа от Z | IDC_ZPOS_TEXT | 
| Выпадающий список Заполнение | IDC_FILLMODE | 
| Кнопка Quads | IDC.QUADS | 
| Кнопка Выбор файла | IDC_FILENAME | 
Вместо кнопки Quads просится пара переключателей (radio button) Quads/Strip. Сначала я так и сделал, но потом, к сожалению, пришлось отказаться из-за сложностей введения отклика реакции или уведомления, на выбор, произведенный в группе переключателей. Они обусловлены несовершенством бета-версии Studio .NET. Если вы впервые устанавливаете группу переключателей (radio buttons), то вам следует знать, что группа Quads/Strip будет работать правильно, если числовые значения идентификаторов составляющих ее элементов следуют подряд и (только) для первого переключателя установлено свойство Group. Для второго этот флаг должен быть снят. Если вы вставляете еще одну группу, то картина должна повториться. Первый переключатель должен иметь свойство Group в положении True, а остальные (если их много) – нет.
Для того чтобы просмотреть числовые значения идентификаторов, следует поставить фокус на элемент IDD_PROPDLG в дереве ресурсов (в окне Resource View) и вызвать контекстное меню. Затем надо выбрать команду Resource Symbols. Появится диалог со списком всех идентификаторов, которые хранятся в файле resource.h. Не следует редактировать этот файл вручную.
Примечание
Изменять числовые значения идентификаторов следует с большими предосторожностями, так как ошибки на этом этапе могут внести трудно распознаваемые отказы и нестабильную работу приложения. Надо сказать, что отслеживание корректности числовых значений идентификаторов всегда было слабым местом как Visual Studio, так и среды разработки Borland. Беру на себя смелость предположить, что уйма времени была затрачена разработчиками всех стран на поиск ошибок такого рода, так как сам потратил много усилий и времени пока не понял, что легче уничтожить ресурс и создать заново, чем пытаться найти новый диапазон числовых значений, который не затронет другие идентификаторы.
Если, несмотря на предостережения, вам захочется изменить числовое значение какого-либо идентификатора, то можете это сделать в окне Properties.
- Поставьте фокус на элемент управления, идентификатор которого вас не устраивает, и перейдите в окно Properties.
- В конец строки с идентификатором добавьте текст вида "=127", где 127 – новое значение идентификатора. Например, IDC_QUAD=127.
Редактор ресурсов может с возмущением отвергнуть ваш выбор. Тогда ищите другой диапазон с помощью уже рассмотренного диалога Resource Symbols. Эта тактика потенциально опасна. Повторюсь и скажу, что проще удалить и создать заново весь ресурс. Однако если вы самостоятельно выработаете или узнаете о более надежной технологии, то прошу сообщить мне. В этот момент следует запустить сервер и проверить наличие элементов на новой странице свойств. Если что-то не так, надо внимательно проверить, а возможно, и повторить все шаги создания вкладки.
