![]() |
|
![]() ![]() ![]() |
|
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
Создаю стандартноe SDI MFC приложение с помощью VS2005 .
Можно ли каким то образом вместо документа, который создаётся подсунуть мой дайлог бокс из ресурсов? Если да, то как?) |
|||
|
||||
Greeen |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 710 Регистрация: 13.8.2006 Где: Петербург Репутация: 10 Всего: 18 |
Не совсем понял что значит
но чувствую, что тебе поможет CFormView -------------------- Подпись больше не нужна |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Или, если тебе не нужен документ вообще, может расмотреть приложение на основе диалогового окна? Тебе точно нужно SDI?
-------------------- ... |
|||
|
||||
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
Что - то у меня не получается в приложении на основе диалога создать тулбар CDialogBar.
Делаю так же как в sdi: http://forum.vingrad.ru/topic-142989.html# . Это сообщение отредактировал(а) v2v - 27.3.2007, 14:20 |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Ну, вообще говоря, к диалогу можно прилепить панель, но только жестко придоченную, без перемещения и ресайза. Да и то не без геморроя. Это потому, что окончательную доводку панели напильником производит CFrameWnd, коим диалог не является. С другой стороны, если тебя устраивает жестко прибитая панель, никто не мешает создать просто дочерний диалог, с помощью Create. Выглядеть будет точно так же. А обработку его уведомлений в любом случае руками писать нужно, т.к., как уже было сказано, родительский диалог - не CFrameWnd.
-------------------- ... |
|||
|
||||
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
Есть два диалог бокса..
Я из одного пітаюсь получить доступ к контролам второго с помошью функции: GetDlgItem(идентификатор,буфер). Но у меня ошибка "Идентификатор не найден".... Я делаю не правильно... А как правильно? |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 16 Всего: 92 |
какой еще буфер? ![]() странно, на этапе компиляции не должно быть ошибки в любом случае, если идентификатор реальный. Вообщем предлагаю вам поступить так: 1. В редакторе ресурсов добавляем и рисуем диалог, даем какой-нить осмысленный идентификатор (необязательно, для собственного удобства) 2. В редакторе ресурсов правой мышью по только что отрисованному диалогу -> Add class (на базе CDialog) далее его буду называть CSecDialog 3. Теперь повторяем: Опять в редакторе правой мышью по контролу нового диалога -> Add variable (тип - control) (Пока не кончатся контролы, которым требуется управление) 4. Теперь лезем в первый (главный) диалог, в членах класса создаем указатель типа CSecDialog *m_dlgSec; Хотя можно и не указатель а сразу объект. 5. Теперь думаем в каком месте вызвать второй диалог. Если хотим, чтобы он жил вместе с главным от начала и до конца, то делаем это в методе OnInitDialog(). Выделяем память под указатель, вызываем метод Create(), в качестве ID подсовываем наш осмысленный из пункта 1. В качестве указателя на родителя подсоваваем this. 6. Теперь радуемся как все замечательно управляется. Управление контролом второго диалога примерно такое: m_dlgSec->m_myControl.DoSomething(); Вроде ничего не пропустил, но всякое бывает. Удачи! Да, все действия описаны под 2003 студию. PS не забываем освобождать память, после того как она больше не нужна. Это сообщение отредактировал(а) zkv - 27.3.2007, 22:55 |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
v2v,
pSecondDialog->GetDlgItem(...) Ты так делаешь? Или просто GetDlgItem? -------------------- ... |
|||
|
||||
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
ок! спасибо.
А как добавить на форму (CformView) диалог бокс с ресурсов?? Такое впринципе возможно? Это сообщение отредактировал(а) v2v - 30.3.2007, 16:34 |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Что значит
? Сделать дочернюю диалоговую панель? Так просто создай дочерний диалог в нужном месте и парентом =formview. Или создать форм-вью согласно нарисованному диалогу? Так этот ресурс в конструктор передается... -------------------- ... |
|||
|
||||
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
Как заставить контрол (кнопку) "приклеится" к правому краю окна и двигатся с ним не меняя размера.
Это желательно сделать при создании, поскольку таких контролов много и за каждым следить - перерисовывать не подходит... Должно же быть что то похожее CBRS_ALIGN_RIGHT, но не для тулбаров, а для обычных controls. |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Все бы вам готовенькое... Не должно и нет, в MFC, по крайней мере. Но нужное поведение реализуется просто. Посмотри сюда: Авто-ресайз -------------------- ... |
|||
|
||||
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
сложноватый код(как для новичка мфц) ...а можно тогда каким то образом сгрупировать ( они у меня все в одной области окна будут находится) и управлять только этим сгруппированным контролом. Group Box?? а как добавлять к нему элементы, что бы при его смещении все дочерние тоже смещались... |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Будешь бояться сложного кода, программистом тебе не бывать.
![]() Да и нет там ничего сложного. Разберешься. На этой основе можешь сделать свой вариант, как тебе нравится. Будут конкретные вопросы - задавай. А желание получить разжеванную кашку где-то понимаю, но не уважаю. ![]() ![]() ![]() -------------------- ... |
|||
|
||||
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: нет Всего: 56 |
ладно ладно .. жвачек мне пожованных не надо))..
вы мне направление дайте куда двигаться, просто не хотелось бы влазить в тот код, так как я не уверен нужно ли оно мне на самом деле..... так что там на счёт Груп Бокса??? |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |