![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| And234 |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 22.11.2005 Репутация: нет Всего: нет |
Структура класса диалога в MDI VC6В MDI приложении для объявления и работы с дочерними диалогами
пытаюсь составить класс для каждого вида диалоговых окон. объявление класса окна представил в виде Исходник снизу в РАРе
теперь необходимо зарегистрировать в объявлении класса процедуру обработки сообжений регистрирую как указатель на член класса таким образом
компилятор выдает следующее ссылаясь на строку
Compiling... error C2440: '=' : cannot convert from 'long (__stdcall MyChild::*)(struct HWND__ *,unsigned int,unsigned int,long)' to 'long (__thiscall MyChild::*)(struct HWND__ *,unsigned int,unsigned int,long) const' Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast error C2440: '=' : cannot convert from 'long (__thiscall MyChild::*)(struct HWND__ *,unsigned int,unsigned int,long) const' to 'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)' There is no context in which this conversion is possible Error executing cl.exe. Avely001.exe - 2 error(s), 0 warning(s) Присоединённый файл ( Кол-во скачиваний: 1 )
Child.rar 6,91 Kb |
||||||
|
|||||||
| Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 8 Всего: 18 |
Во-первых, ты пытаешься получить адрес ф-ции до создания экземпляра класса. Но я с классами не очень дружу.
Во-вторых, если это не задание и не личный интерес, то есть MFC - там умные дядбки все это уже реализовали, правда не очень красиво и довольно увесисто. Если просто учишься и деланшь это сам для себя, то посмотри статьи о внутреннем устройстве MFC (естественно, исходный ее код закрыт, но но мозги-то есть...) Добавлено @ 14:29 Но, вообще, компилятор говорит о несоответствии типов. |
|||
|
||||
| Neitron |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: 3 Всего: 5 |
Ф-ция имее свой адрес, еще до создания экземпляра класса. Дело в другом. Ф-ция должна быть статической. -------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
|||
|
||||
| Fixin |
|
||||||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 8 Всего: 18 |
Если сделать так:
Добавлено @ 14:45
|
||||||
|
|||||||
| Neitron |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: 3 Всего: 5 |
Кому доказать и зачем?
.... WNDPROC определен как
Ф-ция обработчик сообщений обязана быть в классе объявлена как статическая. Это сообщение отредактировал(а) Neitron - 29.11.2005, 14:53 -------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
|||
|
||||
| Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 8 Всего: 18 |
Вот, компилится, а работает или нет - не знаю.
Присоединённый файл ( Кол-во скачиваний: 4 )
Look_at.rar 2,10 Kb |
|||
|
||||
| Neitron |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 580 Регистрация: 3.10.2005 Где: Москва Репутация: 3 Всего: 5 |
Человек же просил через ф-цию член, а не через ф-цию друг.......=)
-------------------- Хороший программист никогда ничего не делает хорошо с первого раза. Он понимает важность патчей. Ⓘ ⓁⒾⓀⒺ ⓂⓄⓏⒾⓁⓁⒶ |
|||
|
||||
| And234 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 22.11.2005 Репутация: нет Всего: нет |
Огромное Спасибо.
То что нужно. Изучаю САМ в МФС загляну. В литературе этого не нашел по этому залез с вопросом. Модератору -> сори впервые на форуме. Модератору -> после того как выяснил что все только смотрят выложил еще 2 копии темы с разъяснениями. Почему Окно Workspace отображает как глобальная процедура а не как член класса? |
|||
|
||||
| And234 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 22.11.2005 Репутация: нет Всего: нет |
Fixin -> исходник работает, ОК.
но как член объявил так (по совету Neitron). Выглядит так.
регистрация процедуры обработчика
|
||||
|
|||||
| Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 8 Всего: 18 |
Немножко подправил, только что-то фокус не ставится на дочернее, но это уже не ко мне
Присоединённый файл ( Кол-во скачиваний: 5 )
Child.rar 1,92 Kb |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |