Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Что из себя представляют ресурсы?


Рекомендуемые сообщения

Объясните пожалуйста ,каким образом возможно добавление диалога и кнопок с помощью ресурсов.Ведь например кнопку можно создать програмно или просто добавить в ресурсах.Но как работает кнопка из ресурсов мне не понятно.ресурсы содержат различные параметры окон ,кнопок и т.д,но ведь там нет кода программы.Компилятор сам ,что ли дописывает код?Объясните пожалуйста.Или ссылочку на статейку дайте,если не трудно.

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

Ресурс является шаблоном для диалога.... наверное, так будет если не понятнее, то проще......

В нем описывается сам диалог (своими свойствами) и его компоненты. Никакого кода на ресурс компилятор не навешивает.

Существует ряд функций Win32 API, такие как

DialogBoxParam, DialogBoxIndirect, DialogBoxIndirectParam и им подобные, которые занимаются разбором ресурса и построением окна на его основе.

При этом ты сам указываешь оконную ф-цию получаемого окна, в которой и пишешь обработчики событий как от самого диалога, так и от его компонентов.

Если ты используешь MFC или что-то подобное, то там класс привязывается к ресурсу, и экранирует управление окном и реакцию на события. Взамен тебе дается возможность писать методы класса - чаще всего - один метод на одно событие. Бывают, конечно, исключения, вроде VM_SCROLL.

Как работает......

при использовании АПИ:

Допустим, модальный диалог с кнопкой. У кнопки есть ID.

Ты вызываешь, например, DialogBoxParamA. Там указываешь оконку диалога - ее пишешь сам.

При нажатии на кнопку, вызывается твоя оконка с такими вот параметрами

hDlg- хендл на экземпляр окна

uMsg - WM_COMMAND

wParam - ID кнопки

lParam - не помню. :you5:

Для MFC

Создается класс, например, CMyDialog, публично унаследованный от CDialog и привязанный к твоему ресурсу - эта привязка видна в конструкторе.

Потом, пишешь обработчик нажатия кнопки (или любого другого евента, который может быть у кнопки).

А происходит вот что...

у MFC своя оконка, которая по хендлу окна, коду мессаги и ID контрола в конечном счете дернет твой метод-обработчик.

Это если вкратце.

А вот если обработчика нет, то нажатие на кнопку ни к чему не приведет.

А насчет ссылки..... начни, например, [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/dialogboxes.asp]отсюда[/url]

Можешь также поиск на CDialog - это для MFC

Изменено пользователем Andrew.Egorovsky
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...