Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Файл ресурсов С++
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Программирование
Igor.Kh
Здравствуйте.

Начал изучать С++. Для написания программ использую Microsoft Visu C++ 2010 express. При создании проекта с "чистого листа" создаю заголовочный файл ресурсов
Resource.h в ручную.

Возникли вопросы
1. Есть ли предопределенные числовые значения для предопределенных символов, например для таких как IDABORT, IDD_ABOUTBOX, IDI_SMALL и других? Как я понял
из MSDN определение этих символов дано в Win32.h. Но как получить узнать эти предопределенные числовые значения?

2. Есть ли и какие правила назначения/использования числовых значений для определенных пользователем ресурсов? Например разделение по назначению, типу?

Спасибо!
Xenia
Цитата(Igor.Kh @ Mar 12 2014, 21:38) *
1. Есть ли предопределенные числовые значения для предопределенных символов, например для таких как IDABORT, IDD_ABOUTBOX, IDI_SMALL и других? Как я понял
из MSDN определение этих символов дано в Win32.h. Но как получить
узнать эти предопределенные числовые значения?

В том хидере, где символ описан, там он и определен в виде константы. Например:
Код
#define IDABORT      3

отождествляет IDABORT с числом 3.

Цитата(Igor.Kh @ Mar 12 2014, 21:38) *
2. Есть ли и какие правила назначения/использования числовых значений для определенных пользователем ресурсов? Например разделение по назначению, типу?

Правила тут такие. Если это ваш самодельный диалог, но его элементам можете придавать любые числовые значения, лишь бы они не повторялись внутри одного и того же диалога. Точно так же ничто не мешает использовать уже существующие определения типа IDOK или IDCANCEL, т.к. такие кнопочки есть почти у всех диалогов.

Например, я в каждом диалоговом окне начинаю нумеровать с цифры 100, потом 110, 120, 130, 140, и т.д. через десятку, чтобы при необходимости можно было вставить число в промежуток. Хотя это только мой бзик, поскольку кнопочки не обязаны идти по порядку. Однако мне так больше нравится.

В другом диалоге снова можно начинать с 100, т.к. диалоги чужих элементов не видят и не знают, что они есть. Т.е. эти числа нужны только для данного диалога, чтобы тот мог различать своих детей. Более они ни для чего не нужны. А в других семьях/диалогах детей снова можно называть теми же именами.

Иное дело - "системные диалоги", которые не вы рисовали. Там уже и элементы были названы без вас. И если вам их идентификаторы нужны, то надо искать их опреденение в хидер-файлах. Например, IDABORT это специфическая кнопка системного диалога MessageBox, который выдает код клавиши, по которой его покинули. А я оттого и нумерую элементы своих диалогов, начиная с числа 100, чтобы можно было идентификаторы системных кнопок использовать, т.к. до сотни их номер никогда не доходит.
gerber
Кхм... а что, редактор ресурсов уже отменили в MSVC?
V_G
Да, как-то редактор ресурсов сам присваивает нужные числа вновь вводимым пользователем идентификаторам. Созданные им файлы Resource.h, Resource.rc ручками редактирую крайне редко, например, если почему-то нужен четкий порядок следования числовых значений идентификаторов.
ms1
В бесплатной версии студии нет редактора ресурсов.
По крайней мере в 2005м не было, если мне мой склероз не изменяет.
Кроме того, топикстартеру, раз уж он начинающий, действительно будет полезно разобраться как это выглядит "изнутри".
Igor.Kh
Xenia,

Спасибо за пояснение! Помогли! Двигаюсь дальше в изучении более уверенным шагом.

Цитата(ms1 @ Mar 13 2014, 17:49) *
В бесплатной версии студии нет редактора ресурсов.
По крайней мере в 2005м не было, если мне мой склероз не изменяет.
Кроме того, топикстартеру, раз уж он начинающий, действительно будет полезно разобраться как это выглядит "изнутри".


Вы правы, в бесплатной версии нет редактора ресурсов. И действительно хочу разобраться как это выглядит "изнутри".
Xenia
Цитата(Igor.Kh @ Mar 13 2014, 18:55) *
Спасибо за пояснение! Помогли! Двигаюсь дальше в изучении более уверенным шагом.


Вот еще что не досказала. В тех случаях, когда элемент диалога "мертвый", например, какой-то текст возле кнопки (STATIC) или плашка (GROUPBOX), от которых вы сообщений не ожидаете и получать их не собираетесь, допустимо нумеровать одинаково ... минус единицей! Т.е. даже имени им не даете, а прямо пишете -1. Я не сама это придумала, а в каких-то примерах когда-то увидала и с тех пор использую. Это очень наглядно, т.к. сразу видны декоративные элементы и экономится время и место для декларации лишних имен для элементов, которых по именам никогда звать не станут.
kolobok0
Цитата(Xenia @ Mar 14 2014, 01:00) *
...которых по именам никогда звать не станут.


а когда логика усложнится и надо будет засерить (к примеру), вот тогда дабл ворк и наступит... хотя на любителя...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.