![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
С диалогами, конечно, все ясно. Просьба объяснить.
-------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
так же как это делают диалоги: создать элемент с помощью CreateWindow/Ex -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
А если их много, то как получить наглядность? Создать ресурс диалога и временно накидать туда, чтобы получить нужные координаты и внешний вид? -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
наглядность )
для наглядности и используют ресурсы диалогов не совсем понял, S.A.G., уточняю: ты хочешь иметь возможность редактировать ресурс как в диалоге, но работать с ним как с обычным окном, через WndProc? если так, то смотри соседнюю тему, Custom Dialog's - как раз такой случай: http://forum.vingrad.ru/forum/topic-263795.html -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Ya. Спасибки за хелп. Это сообщение отредактировал(а) S.A.G. - 21.6.2009, 14:45 -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
GremlinProg, поможешь?
-------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| 586 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2243 Регистрация: 8.5.2006 Репутация: 39 Всего: 146 |
1. Создай в диалоге Custom Control.
2. В свойствах контрола в поле Class Name укажи имя твоего класса. В коде: 1. Вызови функцию RegisterClass (если класс не зарегистрирован) 2. Создай диалог. |
|||
|
||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
586, мне нужно на главном окне, а не на диалоге.
-------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
S.A.G., самый простой способ, не влазя в дебри процедур, сделать диалог дочерним в твоем главном окне. Т.е. создаешь ресурс диалога как обычно, только в свойствах ему чтавишь стиль чайлд. Далее, в главном окне создаешь диалог CreateDialоg, как дочерний по отношению к главному окну. У главного окна тебе потребуется реализовать только метод OnSize, чтобы растягивать лиалог на все окно (если надо, конечно).
Еще метод, для слегка маньяков. Опять создаем диалоговый ресурс, загружаем его как ресурс DLGTEMPLATE, далее читаем и по его итемам создаем динамически контролы в главном окне. Совсем недавно я кому-то показывала код для чтения DLGTEMPLATE, поищи, если интересно. Добавлено через 1 минуту и 7 секунд Но первый способ, по-моему, лучше по дизайну, ибо отделяет главное окно (рамку) от его содержимого. Лучше, в том числе и чем подмена процедуры. И проще. -------------------- ... |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
предлагаешь повторить то же самое? просто напомню ссылку из MSDN: http://msdn.microsoft.com/en-us/library/ms...px#custom_boxes все 6 абзатцев исключительно по теме, просто вчитайся а по-русски, мы уже все обговорили если у Alca есть желание, он может подправить свой код до рабочего состояния, хотя устно мы уже и обговорили проблемные места кстати, 586 предложил способ, при котором можно в ресурс добавить свой собственный визуальный компонент, тоже отличный вариант Добавлено через 9 минут и 59 секунд
так мы не о подмене процедуры говорим-то, а о наследовании (суперклассинг), по мне, так перекрыть таким образом диалог - гораздо проще, чем создавать в окне дочерний view, из ресурсов, но тут, конечно хозяин-барин: правильно и так и эдак -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
кстати, предлагаю сменить название топика, т.к. оно не отражает его суть,
например так: "Управление диалогом, как полноценным окном, через WndProc" есть другие предложения, мнения? -------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Я над этим думал, т.е. получается накладка окна диалога на клиентскую область главного окна. Я на даный момент пытаюсь сделать исключительно по-простому - просто создать шаблон диалога, идентичный главному окну, чтобы кидать на него контролы и получать таким образом требуемую наглядность и координаты контролов из файла .rc. Только вот проблемка - неудается подогнать размер диалога под размер главного окна. Никак не удается получить корректные диалоговые единицы. Вызов DialogBaseUnits дает 8 и 16 для x и y соответственно, GetTextMetrics - 7(!) и 16, а MapDialogRect переводит размеры и расположение диалога в совсем другие числа. Вопрос: как получить "правильные" диалоговые единицы? Согласен. По поводу твоей идеи почитаю, но не уверен, что мне хватит английского. Кажется, это самый прогрессивный подход к решению этой задачи. Это сообщение отредактировал(а) S.A.G. - 22.6.2009, 11:35 -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
ок, название поменял
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
...
Это сообщение отредактировал(а) S.A.G. - 22.6.2009, 13:35 -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |