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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вызов CDocument::OnOpenDocument(pathname), не из документа, а с какого-нить диалога 
:(
    Опции темы
Madest
Дата 18.3.2004, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Как это можно сделать?
ругается - illegal call of non-static member function

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


Нереварин
**


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

Репутация: 27
Всего: 49



А ты случайно не вызываешь её CDocument::OnOpenDocument(pathname)?
Вызывать её надо для конкретного объекта класса pDoc->OnOpenDocument(pathname), т.к. это не статическиая функция-член smile.gif


--------------------
Не смей читать мою подпись!!!
PM MAIL Jabber   Вверх
Madest
Дата 18.3.2004, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Мне документ нужно открыть с заранее известным программе pathname из диалога. Но если б я кнопке присвоил ID_FILE_OPEN - вызывался бы CFileDialog, который там не нужен. В общем, кнопке дал идентификатор ID_FILE_NEW, а в функции документа OnNewDocument() вместо CDocument::OnNewDocument() вписал CDocument::OnOpenDocument(pathname). Типа обхитрил =) А можно ли это правильными средствами сделать?
А поначалу, конечно, че только не выдумывал, даже вот это
CMultiDocTemplate* pDocTemplate;
pDocTemplate=new CMultiDocTemplate(
IDR_ETYPE,
RUNTIME_CLASS(CEDoc),
RUNTIME_CLASS(CChildFrame),
RUNTIME_CLASS(CEView));
AddDocTemplate(pDocTemplate);
в функцию-обработчицу сообщения от кнопки пытался впихнуть =)

Это сообщение отредактировал(а) Madest - 18.3.2004, 15:59
--------------------
PM MAIL   Вверх
srd
Дата 18.3.2004, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нереварин
**


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

Репутация: 27
Всего: 49



Гм, покажи код, я то я запутался sad.gif


--------------------
Не смей читать мою подпись!!!
PM MAIL Jabber   Вверх
Madest
Дата 18.3.2004, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Кнопка из диалога должна открыть документ по пути mypathname.
Поначалу писал ей собственно-выдуманный идентификатор и в функции-обработчице сообщения ее нажатия пытался вызвать CDocument::OnOpenDocument(mypathname). Извращался повсякому - не вышло.
Потом написал у этой кнопки идентификатор ID_FILE_OPEN - стандартный MFC-шный. Кнопка стала вызывать CFileDialog (для открытия файла) и вызывает метод CEDoc::OnOpenDocument(LPCTSTR lpszPathName) в котором вызывается нужный мне CDocument::OnOpenDocument(mypathname). Но CFileDialog мне там не нужен(!!!), mypathname программе известен. Поэтому кнопке приписал ID_FILE_NEW, при котором просто создается новый документ и вызывается метод CEDoc::OnNewDocument(). И там уже закомментировал CDocument-овский OnNewDocument() и вместо него вставил !CDocument::OnOpenDocument(mypathname). Работает нормально, но возможно ведь, наверное, это сделать ээээ... по теории?

BOOL CEDoc::OnNewDocument()
{
if(!CDocument::OnOpenDocument(mypathname))
AfxMessageBox("no open doc");
//if(!CDocument::OnNewDocument()) return FALSE;
//......
}
--------------------
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

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

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

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

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


 




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


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

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