C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 310 - Почему ресурсы бывают под одинаковыми именами / MFC шаг за шагом / Visual C++

Шаг 310 - Почему ресурсы бывают под одинаковыми именами

Итак, мы с Вами в проектах часто встречали ресурсы с одинаковыми именами. Вопрос в том, какой смысл вкладывается в это ? Давайте рассмотрим простое приложение, которое генерирует MFC AppWizard и посмотрим там ресурсы. Под идентификатором IDR_MAINFRAME кроется много ресурсов.

  • Таблица акселераторов
  • Икона
  • Меню
  • Панель инструментов

Много. В данном случае это простая логика. Объект рамки окна имеет эти атрибуты и тогда при создании приложения о имени ресурса не надо задумываться. Например:

......
LoadMenu(IDR_MAINFRAME)
LoadIcon(IDR_MAINFRAME)
......

Вроде опять парадокс. Как MFC разбирается в одинаковых идентификаторах ??? Но в том-то и дело, что они разные. LoadMenu() ищет именно идентификатор меню, а он с таким именем уникальный. От нас скрывается целый процесс, где как раз и указывается тип ресурса. Смотрите шаги в WinAPI для лучшего понимания.

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

Но это еще не все. Есть хороший пример с иконами. Смотрите "Шаг 173 - Многоликие иконы", который расказывает о том как под одним идентификатором хранится несколько икон. А это зачем ? Во-первых, посмотрите "Шаг 52 - Отображение икон", что иконы могут отображаться по разному, а во-вторых описание функции "Шаг 48 - LoadIcon()", так вот эта функция будет искать икону по идентификатору определенного размера. Вывод: Под одним идентификатором могут находиться несколько элементов, если в будущем могут потребоваться элементы с разными параметрами и мы заранее не можем знать какой понадобится. Икону для отображения значка приложения будет извлекать Windows, о каком тут прогнозе можно говорить :-) ?


| |
Автор Каев Артем.
[AD]