реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Файл ресурсов С++, Предопределенные значения ресурсов
Igor.Kh
сообщение Mar 12 2014, 17:38
Сообщение #1





Группа: Участник
Сообщений: 11
Регистрация: 19-03-13
Пользователь №: 76 101



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

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

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

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

Спасибо!
Go to the top of the page
 
+Quote Post
Xenia
сообщение Mar 12 2014, 18:13
Сообщение #2


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(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, чтобы можно было идентификаторы системных кнопок использовать, т.к. до сотни их номер никогда не доходит.
Go to the top of the page
 
+Quote Post
gerber
сообщение Mar 12 2014, 18:18
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 750
Регистрация: 1-11-11
Пользователь №: 68 088



Кхм... а что, редактор ресурсов уже отменили в MSVC?


--------------------
"... часами я мог наблюдать, как люди работают." (М. Горький)
Go to the top of the page
 
+Quote Post
V_G
сообщение Mar 12 2014, 20:38
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Да, как-то редактор ресурсов сам присваивает нужные числа вновь вводимым пользователем идентификаторам. Созданные им файлы Resource.h, Resource.rc ручками редактирую крайне редко, например, если почему-то нужен четкий порядок следования числовых значений идентификаторов.
Go to the top of the page
 
+Quote Post
ms1
сообщение Mar 13 2014, 13:49
Сообщение #5


Частый гость
**

Группа: Свой
Сообщений: 150
Регистрация: 13-10-05
Пользователь №: 9 614



В бесплатной версии студии нет редактора ресурсов.
По крайней мере в 2005м не было, если мне мой склероз не изменяет.
Кроме того, топикстартеру, раз уж он начинающий, действительно будет полезно разобраться как это выглядит "изнутри".
Go to the top of the page
 
+Quote Post
Igor.Kh
сообщение Mar 13 2014, 14:55
Сообщение #6





Группа: Участник
Сообщений: 11
Регистрация: 19-03-13
Пользователь №: 76 101



Xenia,

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

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


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

Сообщение отредактировал Igor.Kh - Mar 13 2014, 14:50
Go to the top of the page
 
+Quote Post
Xenia
сообщение Mar 13 2014, 21:00
Сообщение #7


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



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


Вот еще что не досказала. В тех случаях, когда элемент диалога "мертвый", например, какой-то текст возле кнопки (STATIC) или плашка (GROUPBOX), от которых вы сообщений не ожидаете и получать их не собираетесь, допустимо нумеровать одинаково ... минус единицей! Т.е. даже имени им не даете, а прямо пишете -1. Я не сама это придумала, а в каких-то примерах когда-то увидала и с тех пор использую. Это очень наглядно, т.к. сразу видны декоративные элементы и экономится время и место для декларации лишних имен для элементов, которых по именам никогда звать не станут.
Go to the top of the page
 
+Quote Post
kolobok0
сообщение Mar 14 2014, 10:18
Сообщение #8


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(Xenia @ Mar 14 2014, 01:00) *
...которых по именам никогда звать не станут.


а когда логика усложнится и надо будет засерить (к примеру), вот тогда дабл ворк и наступит... хотя на любителя...
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 07:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01405 секунд с 7
ELECTRONIX ©2004-2016