Jump to content

    
Sign in to follow this  
Igor.Kh

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

Recommended Posts

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

 

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

Resource.h в ручную.

 

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

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

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

 

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

 

Спасибо!

Share this post


Link to post
Share on other sites
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, чтобы можно было идентификаторы системных кнопок использовать, т.к. до сотни их номер никогда не доходит.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

Xenia,

 

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

 

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

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

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

 

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

Edited by Igor.Kh

Share this post


Link to post
Share on other sites
Спасибо за пояснение! Помогли! Двигаюсь дальше в изучении более уверенным шагом.

 

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

Share this post


Link to post
Share on other sites
...которых по именам никогда звать не станут.

 

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

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this