![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Madest |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 143 Регистрация: 27.11.2003 Где: Городок Репутация: нет Всего: нет |
Как это можно сделать?
ругается - illegal call of non-static member function --------------------
|
|||
|
||||
srd |
|
|||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 27 Всего: 49 |
А ты случайно не вызываешь её CDocument::OnOpenDocument(pathname)?
Вызывать её надо для конкретного объекта класса pDoc->OnOpenDocument(pathname), т.к. это не статическиая функция-член ![]() -------------------- Не смей читать мою подпись!!! |
|||
|
||||
Madest |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 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 --------------------
|
|||
|
||||
srd |
|
|||
![]() Нереварин ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 951 Регистрация: 30.8.2003 Где: Владивосток Репутация: 27 Всего: 49 |
Гм, покажи код, я то я запутался
![]() -------------------- Не смей читать мою подпись!!! |
|||
|
||||
Madest |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 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; //...... } --------------------
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |