![]() |
|
|
![]()
|
|
| Rost |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 21.12.2004 Репутация: нет Всего: нет |
CRedaktorDoc* pDoc=GetDocument();
CClientDC dc(this); CClientDC* m_dc; m_dc=&dc; (pDoc->m_spisok).Each((pDoc->m_figure)->Draw(m_dc)); Переменные m_spisok и m_figure описаны в CDocument типами CSpisok и CFigure*. Исходное описание в классе: void CSpisok::Each(void(CElement::*f)(CClientDC* pDC)) CFigure - абстрактный класс, наследуется от CElement, в нём Draw - чистая функция, переопредяляется в наследуемых классах. Выдаётся единственная ошибка: D:\Program Files\Microsoft Visual Studio\MyProjects\Redaktor\RedaktorView.cpp(125) : error C2664: 'Each' : cannot convert parameter 1 from 'void' to 'void (__thiscall CElement::*)(class CClientDC *)' Весь вечер бьюсь, ошибки не вижу (( |
|||
|
||||
| Mad |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Эксперт Сообщений: 656 Регистрация: 18.10.2004 Где: Одесса Репутация: 2 Всего: 19 |
Ты передаеш не указатель, а результат выполнения функции.
|
||||
|
|||||
| Rost |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 21.12.2004 Репутация: нет Всего: нет |
Mad
К сожалению это тоже работать не будет, т.к. Draw - компонентная функция, а указатель на компонентую функцию явно передать нельзя(. |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |