Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Visual C++ 6.0 / 17 сообщений из 17, страница 1 из 1
06.02.2006, 00:18
    #33524665
neskif
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Visual C++ 6.0
Создал приложение Singl Document. Добавил в проект диалоговую панельку. Создал для нее класс производный от CDialog. В заголовочный файл NameView.h поместил строку #include "NameDlg.h", а в классе после public прописал CNameDlg m_dlg; Как бы сделать, чтобы при загрузке приложения появлялись одновременно окно Singl Document'а и диалоговая панель вполовину ширины меньше.
Задачка такая. Хочу на панели поместить MS FlexGrid для ввода данных (панель диалоговая должны левую половину окна singl закрывать), а в оставшейся правой части окошка чтобы происходило рисование по этим исходным данным.
Может быть зря взял singl document, может надо было просто выбрать Dialog ?
...
Рейтинг: 0 / 0
06.02.2006, 09:10
    #33524863
neskif
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Visual C++ 6.0
Уточняю мой вопрос. Из меню singl'а могу запустить панельку. Но мне надо чтобы панелька запускалась при загрузке приложения одновременно с singl'ом. При создании приложения диалогового это прописывается в функции OnInitDialog с пощью m_dlg.DoModal(); А здесь как сделать ?
...
Рейтинг: 0 / 0
06.02.2006, 10:00
    #33524971
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Visual C++ 6.0
Ты эта, документацию почитай, примеры посмотри. Там с MFC примеров куча идет.
...
Рейтинг: 0 / 0
06.02.2006, 10:55
    #33525164
Barte
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Visual C++ 6.0
В классе ВЬЮ есть функция OnDraw() как только включишь она выполнится, там и напиши, вызов диалога. Но это событие предусмотренно для рисования отчётов и всякого дерьма. Если чё пиши. Примерчик дам. :)
...
Рейтинг: 0 / 0
06.02.2006, 13:42
    #33525809
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Visual C++ 6.0
Надо в том же OnInitDialog вызвать не m_dlg.DoModal();,
а m_dlg.CreateDialog(). Желательно после создания главного окна , чтобы
поставить его парентом для m_dlg. Главное окно создается внутри метода типа OnFileNew или ProcessCommandLine - не помню что там стоит в SDI уже - увидишь сам.

Никакого OnDraw естественно не надо. Это бред.
...
Рейтинг: 0 / 0
06.02.2006, 13:51
    #33525836
Barte
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Visual C++ 6.0
MasterZiv
Никакого OnDraw естественно не надо. Это бред.



MasterZiv я понял что ему надо диалог вызвать одноврименно с первым???
Там мона так сделать хотя я же написал что OnDraw не для этого.
...
Рейтинг: 0 / 0
06.02.2006, 13:57
    #33525846
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Visual C++ 6.0
Barte MasterZiv
Никакого OnDraw естественно не надо. Это бред.

MasterZiv я понял что ему надо диалог вызвать одноврименно с первым???
Там мона так сделать хотя я же написал что OnDraw не для этого.
в этом случае придется писать счетчик иначе окно будет рисоваться постоянно
...
Рейтинг: 0 / 0
06.02.2006, 16:32
    #33526426
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Visual C++ 6.0
BarteТам мона так сделать хотя я же написал что OnDraw не для этого.

Блин, OnDraw совсем не для этого. Почему из порядка сотни методов ты выбрал именно этот ?
...
Рейтинг: 0 / 0
06.02.2006, 16:33
    #33526433
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Visual C++ 6.0
Cerebrumв этом случае придется писать счетчик иначе окно будет рисоваться постоянно

С какой радости оно будет рисоваться постоянно ?
Да ребята, с вами нисаскучишся...
...
Рейтинг: 0 / 0
06.02.2006, 17:03
    #33526515
Cerebrum
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Visual C++ 6.0
MasterZiv Cerebrumв этом случае придется писать счетчик иначе окно будет рисоваться постоянно

С какой радости оно будет рисоваться постоянно ?
Да ребята, с вами нисаскучишся...
Метод OnDraw вызывается при каждой перерисовке окна
...
Рейтинг: 0 / 0
06.02.2006, 17:12
    #33526562
Barte
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Visual C++ 6.0
MasterZiv Cerebrumв этом случае придется писать счетчик иначе окно будет рисоваться постоянно

С какой радости оно будет рисоваться постоянно ?
Да ребята, с вами нисаскучишся...

Слушай я написал по-русски что хоть я и советую но всё же эта ф-ция OnDraw() не для этих целей. А вызываться оно будет несколько раз потому что в OnDraw содержит параметр контекста устройства для вывода на дисплей.

В этой функции рисуют отчёты и когда ты двигаешь окно отчёт должен всё время перерисовываться. Если не работал с этим то не хер здесь выпендриваться. Умник.
...
Рейтинг: 0 / 0
06.02.2006, 17:24
    #33526608
neskif
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Visual C++ 6.0
BarteВ классе ВЬЮ есть функция OnDraw() как только включишь она выполнится, там и напиши, вызов диалога. Но это событие предусмотренно для рисования отчётов и всякого дерьма. Если чё пиши. Примерчик дам. :)

Я вчера юморил. Использовал всем известный метод "научного" тыка, т.е. совал свою строку m_dlg.DoModal(); поочередно во все функции View.cpp, в том числе и в OnDraw(). Все получилось, но как только я вздумал от нечего делать эту диалоговую панельку за шкирку куда-нибудь переместить, как капутер сразу начинал мощно виснуть.
...
Рейтинг: 0 / 0
06.02.2006, 17:26
    #33526616
neskif
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Visual C++ 6.0
MasterZivНадо в том же OnInitDialog вызвать не m_dlg.DoModal();,
а m_dlg.CreateDialog(). Желательно после создания главного окна , чтобы
поставить его парентом для m_dlg. Главное окно создается внутри метода типа OnFileNew или ProcessCommandLine - не помню что там стоит в SDI уже - увидишь сам.
Спасибо. Обязательно сегодня попробую.
...
Рейтинг: 0 / 0
06.02.2006, 18:35
    #33526806
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Visual C++ 6.0
Barte
В этой функции рисуют отчёты и когда ты двигаешь окно отчёт должен всё время перерисовываться. Если не работал с этим то не хер здесь выпендриваться. Умник.

Фсе понил !! НИВЫПЕНДРИВАЦЦА ! Умник - эта да, эта есть. Умища -то дивать некуда.

Ну дык а фсе жи абъисните, пачиму ана будит пиририсовываца, и ваще - кто ана ? Какие атчеты ?
...
Рейтинг: 0 / 0
06.02.2006, 18:38
    #33526815
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Visual C++ 6.0
neskif
Я вчера юморил. Использовал всем известный метод "научного" тыка, т.е. совал свою строку m_dlg.DoModal(); поочередно во все функции View.cpp, в том числе и в OnDraw().

DoModal вообще нельзя, оно цикл обработки сообщений свой запускает.
В смысле - тебе нельзя.
...
Рейтинг: 0 / 0
06.02.2006, 23:44
    #33527237
neskif
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Visual C++ 6.0
MasterZivНадо вызвать а m_dlg.CreateDialog(). Желательно после создания главного окна , чтобы поставить его парентом для m_dlg. Главное окно создается внутри метода типа OnFileNew или ProcessCommandLine - не помню что там стоит в SDI уже - увидишь сам.
Если я перед тем, как написать m_dlg.CreateDialog() уже добавлял ресурсом диалоговую панель, то будет ошибка. Этот метод создает панель динамически (при запуске программы) ?
...
Рейтинг: 0 / 0
07.02.2006, 00:12
    #33527252
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Visual C++ 6.0
Если я перед тем, как написать m_dlg.CreateDialog() уже добавлял ресурсом диалоговую панель, то будет ошибка.

Не понял, это вопрос или утверждение ? Если вопрос - то нет, не будет. А то откуда бы взялся шаблон диалога.

Этот метод создает панель динамически ?

Вообще ничего не понял. Да, создает динамически. Точнее просто создает окно из шаблона диалога. Как можно создавать статически я не знаю, например.

Задачка такая. Хочу на панели поместить MS FlexGrid для ввода данных (панель диалоговая должны левую половину окна singl закрывать), а в оставшейся правой части окошка чтобы происходило рисование по этим исходным данным.

Короче, что-то я не прочитал внимательно сначала это дело, а зря.

Вообще , если такие запросы, лучше всего сделать SDI приложение со сплиттером, типа "Explorer" (там даже визард есть такой) и в нужной тебе половинке окна заселить CFormView (это view на базе шаблона диалога).
Правда если тебе ТОЛЬКО ОДИН FlexGrid нужен, то лучше создать какой-то свой VIEW на базе него. Если интересует техника как это делать --берешь создаешь Exploerer like приложение визардом, создаешь новый класс CFormView. Потом вместо сгенеренного визардом класса VIEW подставляешь свой CFormView.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Visual C++ 6.0 / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]