Перейти к содержанию
    

Файл ресурсов С++

Здравствуйте.

 

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

Resource.h в ручную.

 

Возникли вопросы

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

из MSDN определение этих символов дано в Win32.h. Но как получить узнать эти предопределенные числовые значения?

 

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

 

Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

из MSDN определение этих символов дано в Win32.h. Но как получить

узнать эти предопределенные числовые значения?

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

#define IDABORT      3

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

 

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

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

 

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

 

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

 

Иное дело - "системные диалоги", которые не вы рисовали. Там уже и элементы были названы без вас. И если вам их идентификаторы нужны, то надо искать их опреденение в хидер-файлах. Например, IDABORT это специфическая кнопка системного диалога MessageBox, который выдает код клавиши, по которой его покинули. А я оттого и нумерую элементы своих диалогов, начиная с числа 100, чтобы можно было идентификаторы системных кнопок использовать, т.к. до сотни их номер никогда не доходит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да, как-то редактор ресурсов сам присваивает нужные числа вновь вводимым пользователем идентификаторам. Созданные им файлы Resource.h, Resource.rc ручками редактирую крайне редко, например, если почему-то нужен четкий порядок следования числовых значений идентификаторов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В бесплатной версии студии нет редактора ресурсов.

По крайней мере в 2005м не было, если мне мой склероз не изменяет.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Xenia,

 

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

 

В бесплатной версии студии нет редактора ресурсов.

По крайней мере в 2005м не было, если мне мой склероз не изменяет.

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

 

Вы правы, в бесплатной версии нет редактора ресурсов. И действительно хочу разобраться как это выглядит "изнутри".

Изменено пользователем Igor.Kh

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...которых по именам никогда звать не станут.

 

а когда логика усложнится и надо будет засерить (к примеру), вот тогда дабл ворк и наступит... хотя на любителя...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...