Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> открыть и вывести по свойму, Собственно это все, что мне нужно 
:(
    Опции темы
Royan
Дата 6.12.2002, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Dreamer
***


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

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



Если я грубо создам через ClassWizard MDI приложение, то при нажатии на кнопку открыть, открывается окно и в нем выводиться текст из обработчика OnDraw(), который собственно мне и нужен. Но как только я переопределил открытие докумнета (просто связал ID_FILE_OPEN со своим OnOpen) и там сзодал окно, то ничего через OnDraw уже не вывести.
Больше того в выпадающем меню Window есть пункт New Window, через который появляется окно, которое выводит текст из OnDraw
Для внесения ясности вот куски моего кода:
Код
void CWORDSnifferView::OnDraw(CDC* pDC){

CWORDSnifferDoc *pDoc = GetDocument();
ASSERT_VALID(pDoc);
pDC->TextOut(0, 0, pDoc->pstrStringData);
}


Вот именно окно создающееся здесь не восприимчиво к OnDraw
Код


void CMainFrame::OnNew()
{
CChildFrame *pChildWnd = new CChildFrame;
if(!pChildWnd->Create(NULL, _T("Please open file"),
0, rectDefault, this))
 return;
}



Все обновления типа Invalidate или UpdateAllViews я уже сто раз перепробовал, тут дело не в них. И Еще не ясно почему первое окно появляется без всякого вызова. То есть его вызов как будто запрятан внутри MFC?


--------------------
Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь
PM MAIL MSN   Вверх
Step
Дата 7.12.2002, 07:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 5
Всего: 25



Обрати внимание что ты на самом деле создаеш не окно а рамку, а ОнДрав реализована для объекта класса производного от ВИД, а не от Фрейм


Успехов.


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Royan
Дата 7.12.2002, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Dreamer
***


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

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



Это ты точно подметил я все понял, эх что-то даже обидно, что сам недопёр. Хоть я сейчас поступил несколько иначе, подскажи мне пожалуйста:

1) Как мне заставить не открываться child окно, которое автоматом появляется вместе с родительским при запуске приложения. Это, например, если сзодать MDI через визарда(ну чтобы понятно было о чем я говорю)

2) Можно ли из класса CMyDoc достать объект окна к которому он относиться? Это мне пока не зачем, но просто интересно.


--------------------
Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь
PM MAIL MSN   Вверх
Step
Дата 7.12.2002, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

Репутация: 5
Всего: 25



Цитата(Royan @ 07.12.2002, 00:54)
Это ты точно подметил я все понял, эх что-то даже обидно, что сам недопёр. Хоть я сейчас поступил несколько иначе, подскажи мне пожалуйста:

1) Как мне заставить не открываться child окно, которое автоматом появляется вместе с родительским при запуске приложения. Это, например, если сзодать MDI через визарда(ну чтобы понятно было о чем я говорю)

2) Можно ли из класса CMyDoc достать объект окна к которому он относиться? Это мне пока не зачем, но просто интересно.

Вопрос конечно интересный, попробую подсказать по 2 пункту.
в клас ДОК вставь укзательн на вид, не инициализирую его.
После при создании вида вызови функциию ГетДокумент результат преобразуй в тип твоего класа Документу и через полученный указатель на документ доберись до созданого указателя на вид и присвой ему this.
после этого через указатель на вид ты будеш иметь доступ к виду из документа.

Успехов.


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Royan
Дата 7.12.2002, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Dreamer
***


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

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



Ну по поводу второго вопроса план действий понятен, а вот по поводу первого, в моем случае как бы даже необходим. Скажем так, возможно, это окно убрать без обработки события OnFileNew?


--------------------
Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь
PM MAIL MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

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


 




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


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

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