|
|
|
Visual C++ 6.0
|
|||
|---|---|---|---|
|
#18+
Создал приложение Singl Document. Добавил в проект диалоговую панельку. Создал для нее класс производный от CDialog. В заголовочный файл NameView.h поместил строку #include "NameDlg.h", а в классе после public прописал CNameDlg m_dlg; Как бы сделать, чтобы при загрузке приложения появлялись одновременно окно Singl Document'а и диалоговая панель вполовину ширины меньше. Задачка такая. Хочу на панели поместить MS FlexGrid для ввода данных (панель диалоговая должны левую половину окна singl закрывать), а в оставшейся правой части окошка чтобы происходило рисование по этим исходным данным. Может быть зря взял singl document, может надо было просто выбрать Dialog ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2006, 00:18 |
|
||
|
Visual C++ 6.0
|
|||
|---|---|---|---|
|
#18+
Уточняю мой вопрос. Из меню singl'а могу запустить панельку. Но мне надо чтобы панелька запускалась при загрузке приложения одновременно с singl'ом. При создании приложения диалогового это прописывается в функции OnInitDialog с пощью m_dlg.DoModal(); А здесь как сделать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2006, 09:10 |
|
||
|
Visual C++ 6.0
|
|||
|---|---|---|---|
|
#18+
Ты эта, документацию почитай, примеры посмотри. Там с MFC примеров куча идет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2006, 10:00 |
|
||
|
Visual C++ 6.0
|
|||
|---|---|---|---|
|
#18+
В классе ВЬЮ есть функция OnDraw() как только включишь она выполнится, там и напиши, вызов диалога. Но это событие предусмотренно для рисования отчётов и всякого дерьма. Если чё пиши. Примерчик дам. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2006, 10:55 |
|
||
|
Visual C++ 6.0
|
|||
|---|---|---|---|
|
#18+
Надо в том же OnInitDialog вызвать не m_dlg.DoModal();, а m_dlg.CreateDialog(). Желательно после создания главного окна , чтобы поставить его парентом для m_dlg. Главное окно создается внутри метода типа OnFileNew или ProcessCommandLine - не помню что там стоит в SDI уже - увидишь сам. Никакого OnDraw естественно не надо. Это бред. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2006, 13:42 |
|
||
|
Visual C++ 6.0
|
|||
|---|---|---|---|
|
#18+
MasterZiv Никакого OnDraw естественно не надо. Это бред. MasterZiv я понял что ему надо диалог вызвать одноврименно с первым??? Там мона так сделать хотя я же написал что OnDraw не для этого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2006, 13:51 |
|
||
|
Visual C++ 6.0
|
|||
|---|---|---|---|
|
#18+
Barte MasterZiv Никакого OnDraw естественно не надо. Это бред. MasterZiv я понял что ему надо диалог вызвать одноврименно с первым??? Там мона так сделать хотя я же написал что OnDraw не для этого. в этом случае придется писать счетчик иначе окно будет рисоваться постоянно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2006, 13:57 |
|
||
|
Visual C++ 6.0
|
|||
|---|---|---|---|
|
#18+
BarteТам мона так сделать хотя я же написал что OnDraw не для этого. Блин, OnDraw совсем не для этого. Почему из порядка сотни методов ты выбрал именно этот ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2006, 16:32 |
|
||
|
Visual C++ 6.0
|
|||
|---|---|---|---|
|
#18+
Cerebrumв этом случае придется писать счетчик иначе окно будет рисоваться постоянно С какой радости оно будет рисоваться постоянно ? Да ребята, с вами нисаскучишся... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2006, 16:33 |
|
||
|
Visual C++ 6.0
|
|||
|---|---|---|---|
|
#18+
MasterZiv Cerebrumв этом случае придется писать счетчик иначе окно будет рисоваться постоянно С какой радости оно будет рисоваться постоянно ? Да ребята, с вами нисаскучишся... Метод OnDraw вызывается при каждой перерисовке окна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2006, 17:03 |
|
||
|
Visual C++ 6.0
|
|||
|---|---|---|---|
|
#18+
MasterZiv Cerebrumв этом случае придется писать счетчик иначе окно будет рисоваться постоянно С какой радости оно будет рисоваться постоянно ? Да ребята, с вами нисаскучишся... Слушай я написал по-русски что хоть я и советую но всё же эта ф-ция OnDraw() не для этих целей. А вызываться оно будет несколько раз потому что в OnDraw содержит параметр контекста устройства для вывода на дисплей. В этой функции рисуют отчёты и когда ты двигаешь окно отчёт должен всё время перерисовываться. Если не работал с этим то не хер здесь выпендриваться. Умник. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2006, 17:12 |
|
||
|
Visual C++ 6.0
|
|||
|---|---|---|---|
|
#18+
BarteВ классе ВЬЮ есть функция OnDraw() как только включишь она выполнится, там и напиши, вызов диалога. Но это событие предусмотренно для рисования отчётов и всякого дерьма. Если чё пиши. Примерчик дам. :) Я вчера юморил. Использовал всем известный метод "научного" тыка, т.е. совал свою строку m_dlg.DoModal(); поочередно во все функции View.cpp, в том числе и в OnDraw(). Все получилось, но как только я вздумал от нечего делать эту диалоговую панельку за шкирку куда-нибудь переместить, как капутер сразу начинал мощно виснуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2006, 17:24 |
|
||
|
Visual C++ 6.0
|
|||
|---|---|---|---|
|
#18+
MasterZivНадо в том же OnInitDialog вызвать не m_dlg.DoModal();, а m_dlg.CreateDialog(). Желательно после создания главного окна , чтобы поставить его парентом для m_dlg. Главное окно создается внутри метода типа OnFileNew или ProcessCommandLine - не помню что там стоит в SDI уже - увидишь сам. Спасибо. Обязательно сегодня попробую. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2006, 17:26 |
|
||
|
Visual C++ 6.0
|
|||
|---|---|---|---|
|
#18+
Barte В этой функции рисуют отчёты и когда ты двигаешь окно отчёт должен всё время перерисовываться. Если не работал с этим то не хер здесь выпендриваться. Умник. Фсе понил !! НИВЫПЕНДРИВАЦЦА ! Умник - эта да, эта есть. Умища -то дивать некуда. Ну дык а фсе жи абъисните, пачиму ана будит пиририсовываца, и ваще - кто ана ? Какие атчеты ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2006, 18:35 |
|
||
|
Visual C++ 6.0
|
|||
|---|---|---|---|
|
#18+
neskif Я вчера юморил. Использовал всем известный метод "научного" тыка, т.е. совал свою строку m_dlg.DoModal(); поочередно во все функции View.cpp, в том числе и в OnDraw(). DoModal вообще нельзя, оно цикл обработки сообщений свой запускает. В смысле - тебе нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2006, 18:38 |
|
||
|
Visual C++ 6.0
|
|||
|---|---|---|---|
|
#18+
MasterZivНадо вызвать а m_dlg.CreateDialog(). Желательно после создания главного окна , чтобы поставить его парентом для m_dlg. Главное окно создается внутри метода типа OnFileNew или ProcessCommandLine - не помню что там стоит в SDI уже - увидишь сам. Если я перед тем, как написать m_dlg.CreateDialog() уже добавлял ресурсом диалоговую панель, то будет ошибка. Этот метод создает панель динамически (при запуске программы) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.02.2006, 23:44 |
|
||
|
Visual C++ 6.0
|
|||
|---|---|---|---|
|
#18+
Если я перед тем, как написать m_dlg.CreateDialog() уже добавлял ресурсом диалоговую панель, то будет ошибка. Не понял, это вопрос или утверждение ? Если вопрос - то нет, не будет. А то откуда бы взялся шаблон диалога. Этот метод создает панель динамически ? Вообще ничего не понял. Да, создает динамически. Точнее просто создает окно из шаблона диалога. Как можно создавать статически я не знаю, например. Задачка такая. Хочу на панели поместить MS FlexGrid для ввода данных (панель диалоговая должны левую половину окна singl закрывать), а в оставшейся правой части окошка чтобы происходило рисование по этим исходным данным. Короче, что-то я не прочитал внимательно сначала это дело, а зря. Вообще , если такие запросы, лучше всего сделать SDI приложение со сплиттером, типа "Explorer" (там даже визард есть такой) и в нужной тебе половинке окна заселить CFormView (это view на базе шаблона диалога). Правда если тебе ТОЛЬКО ОДИН FlexGrid нужен, то лучше создать какой-то свой VIEW на базе него. Если интересует техника как это делать --берешь создаешь Exploerer like приложение визардом, создаешь новый класс CFormView. Потом вместо сгенеренного визардом класса VIEW подставляешь свой CFormView. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2006, 00:12 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33525164&tid=2031994]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
149ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 248ms |
| total: | 478ms |

| 0 / 0 |
