Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Стандартное SDI приложение + DialogBox 
:(
    Опции темы
v2v
Дата 26.3.2007, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: нет
Всего: 56



Создаю стандартноe SDI  MFC приложение с помощью VS2005 .

Можно ли каким то образом вместо документа, который создаётся  подсунуть мой дайлог бокс из ресурсов? Если да, то как?)


--------------------
PM   Вверх
Greeen
Дата 26.3.2007, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 710
Регистрация: 13.8.2006
Где: Петербург

Репутация: 10
Всего: 18



Не совсем понял что значит 
Цитата(v2v @  26.3.2007,  20:22 Найти цитируемый пост)
вместо документа, который создаётся  подсунуть мой дайлог бокс

но чувствую, что тебе поможет CFormView


--------------------
Подпись больше не нужна
PM MAIL ICQ Skype   Вверх
Earnest
Дата 27.3.2007, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Или, если тебе не нужен документ вообще, может расмотреть приложение на основе диалогового окна? Тебе точно нужно SDI?


--------------------
...
PM   Вверх
v2v
Дата 27.3.2007, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: нет
Всего: 56



Что - то  у меня не получается в приложении на основе диалога создать тулбар CDialogBar. 
Делаю так же как в sdi: http://forum.vingrad.ru/topic-142989.html# .

Это сообщение отредактировал(а) v2v - 27.3.2007, 14:20


--------------------
PM   Вверх
Earnest
Дата 27.3.2007, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Ну, вообще говоря, к диалогу можно прилепить панель, но только жестко придоченную, без перемещения и ресайза. Да и то не без геморроя. Это потому, что окончательную доводку панели напильником производит CFrameWnd, коим диалог не является. С другой стороны, если тебя устраивает жестко прибитая панель, никто не мешает создать просто дочерний диалог, с помощью Create. Выглядеть будет точно так же. А обработку его уведомлений в любом случае руками писать нужно, т.к., как уже было сказано, родительский диалог - не CFrameWnd.


--------------------
...
PM   Вверх
v2v
Дата 27.3.2007, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: нет
Всего: 56



Есть два диалог бокса..
Я из одного пітаюсь получить доступ к контролам второго с помошью функции: GetDlgItem(идентификатор,буфер).
Но у меня ошибка "Идентификатор не найден".... Я делаю не правильно... А как правильно?


--------------------
PM   Вверх
zkv
Дата 27.3.2007, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 16
Всего: 92



Цитата(v2v @  27.3.2007,  18:24 Найти цитируемый пост)
GetDlgItem(идентификатор,буфер)

какой еще буфер?  smile 
Цитата(v2v @  27.3.2007,  18:24 Найти цитируемый пост)
Но у меня ошибка "Идентификатор не найден"

странно, на этапе компиляции не должно быть ошибки в любом случае, если идентификатор реальный. 
Цитата(v2v @  27.3.2007,  18:24 Найти цитируемый пост)
А как правильно? 

Вообщем предлагаю вам поступить так:

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
PM MAIL   Вверх
Earnest
Дата 28.3.2007, 07:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



v2v
pSecondDialog->GetDlgItem(...)
Ты так делаешь? Или просто GetDlgItem?



--------------------
...
PM   Вверх
v2v
Дата 30.3.2007, 16:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: нет
Всего: 56



ок! спасибо.

 А как добавить на форму (CformView)  диалог бокс с ресурсов?? Такое впринципе возможно?

Это сообщение отредактировал(а) v2v - 30.3.2007, 16:34


--------------------
PM   Вверх
Earnest
Дата 30.3.2007, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Что значит 
Цитата

добавить на форму (CformView)  диалог бокс с ресурсов

?
Сделать дочернюю диалоговую панель? Так просто создай дочерний диалог в нужном месте и парентом =formview.
Или создать форм-вью согласно нарисованному диалогу? Так этот ресурс в конструктор передается... 


--------------------
...
PM   Вверх
v2v
Дата 2.4.2007, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: нет
Всего: 56



Как заставить контрол (кнопку) "приклеится" к правому краю окна и двигатся с ним не меняя размера.
Это желательно сделать при создании, поскольку таких контролов много и за каждым следить - перерисовывать не подходит...
Должно же быть что то похожее CBRS_ALIGN_RIGHT, но не для тулбаров, а для обычных controls.


--------------------
PM   Вверх
Earnest
Дата 2.4.2007, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Цитата(v2v @  2.4.2007,  17:12 Найти цитируемый пост)
Должно же быть что то похожее CBRS_ALIGN_RIGHT, но не для тулбаров, а для обычных controls

Все бы вам готовенькое... Не должно и нет, в MFC, по крайней мере. Но нужное поведение реализуется просто. Посмотри сюда:
Авто-ресайз



--------------------
...
PM   Вверх
v2v
Дата 2.4.2007, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: нет
Всего: 56




сложноватый код(как для новичка мфц) ...а можно тогда каким то образом сгрупировать ( они у меня все в одной области окна будут находится) и управлять только этим сгруппированным контролом.

Group Box?? а как добавлять к нему элементы, что бы при его смещении все дочерние тоже смещались...


--------------------
PM   Вверх
Earnest
Дата 2.4.2007, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Будешь бояться сложного кода, программистом тебе не бывать.  smile 
Да и нет там ничего сложного.
Разберешься. На этой основе можешь сделать свой вариант, как тебе нравится.
Будут конкретные вопросы - задавай. А желание получить разжеванную кашку где-то понимаю, но не уважаю. smile  smile  smile 


--------------------
...
PM   Вверх
v2v
Дата 2.4.2007, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: нет
Всего: 56



ладно ладно .. жвачек мне пожованных не надо))..
вы мне направление дайте куда двигаться, просто не хотелось бы влазить в тот код, так как я не уверен нужно ли оно мне на самом деле..... так что там на счёт Груп Бокса???


--------------------
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.1004 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.