ilgizmulukov Опубликовано 20 августа, 2006 Жалоба Поделиться Опубликовано 20 августа, 2006 Объясните пожалуйста ,каким образом возможно добавление диалога и кнопок с помощью ресурсов.Ведь например кнопку можно создать програмно или просто добавить в ресурсах.Но как работает кнопка из ресурсов мне не понятно.ресурсы содержат различные параметры окон ,кнопок и т.д,но ведь там нет кода программы.Компилятор сам ,что ли дописывает код?Объясните пожалуйста.Или ссылочку на статейку дайте,если не трудно. Ссылка на комментарий Поделиться на другие сайты Поделиться
Andrew.Egorovsky Опубликовано 20 августа, 2006 Жалоба Поделиться Опубликовано 20 августа, 2006 (изменено) Ресурс является шаблоном для диалога.... наверное, так будет если не понятнее, то проще...... В нем описывается сам диалог (своими свойствами) и его компоненты. Никакого кода на ресурс компилятор не навешивает. Существует ряд функций Win32 API, такие как DialogBoxParam, DialogBoxIndirect, DialogBoxIndirectParam и им подобные, которые занимаются разбором ресурса и построением окна на его основе. При этом ты сам указываешь оконную ф-цию получаемого окна, в которой и пишешь обработчики событий как от самого диалога, так и от его компонентов. Если ты используешь MFC или что-то подобное, то там класс привязывается к ресурсу, и экранирует управление окном и реакцию на события. Взамен тебе дается возможность писать методы класса - чаще всего - один метод на одно событие. Бывают, конечно, исключения, вроде VM_SCROLL. Как работает...... при использовании АПИ: Допустим, модальный диалог с кнопкой. У кнопки есть ID. Ты вызываешь, например, DialogBoxParamA. Там указываешь оконку диалога - ее пишешь сам. При нажатии на кнопку, вызывается твоя оконка с такими вот параметрами hDlg- хендл на экземпляр окна uMsg - WM_COMMAND wParam - ID кнопки lParam - не помню. Для 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 Изменено 20 августа, 2006 пользователем Andrew.Egorovsky Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти