![]() |
|
![]() ![]() ![]() |
|
deniska |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 398 Регистрация: 1.7.2005 Где: Троицк Репутация: 1 Всего: 0 |
Тут есть еще кто живой?
Работаю над графической библиотекой оконных компонентов, столкнулся вот с чем:
в родительском окне, в DoDataExchange в DDX_Control() вижу вменяемый адрес в памяти контрола типа CMyControl и его же в this в CMyControl::PreSubclassWindow, но как только дело доходит до обработчиков сообщений внутри CMyControl, например OnPaint, в this я получаю адрес на 48 байт больше, эти 48 как раз соответствуют sizeof(CBaseData)... если изменить порядок наследования с class CMyControl : public CBaseData, public CWnd на class CMyControl : public CWnd, public CBaseData , то с адресами становится все нормально... WTF собственно? спасибо |
|||
|
||||
_zorn_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 21.8.2007 Репутация: нет Всего: 12 |
||||
|
||||
korian |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 651 Регистрация: 8.3.2008 Где: Украина, Харьков Репутация: 2 Всего: 17 |
А что смущает? Так оно и должно работать.
Если изменить порядок, то адрес CBaseData будет смещен относительно CMyControl на sizeof(CWnd) |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |