M
micron
В MFC есть два замечательных класса: CImage и CBitmap.
Внимание вопрос: как получить указатель на объект CBitmap из объекта CImage?
Промучившись несколько часов я нашел пока только 2 варианта:
1.
image = new CImage();
image->Load("C:\....");
CBitmap *bitmap;
bitmap->CreateBitmap(image->GetWidth(),image->GetHeight(),1,image->GetBPP(),image->GetBits());
Извращенческий способ, но он не подходит..Компилируется все успешно, но уже при запуске программы выскакивает жуткое исключение и ВСЕ!
2.
image = new CImage();
image->Load("C:\....");
CBitmap *bitmap;
bitmap = CBitmap::FromHandle(image->m_hBitmap);
Этот вариант так же не катит, так как еще на стадии компиляции компилятор орет, что поле m_hBitmap ну никак нельзя получить в открытую. ибо оно закапсулировано так, что и сам господь Бог видно не достанет. (Вот текст ошибки в оригинале: c:mfcTestsimpwin.cpp(97): error C2248: 'ATL::CImage::m_hBitmap': Kein Zugriff auf private Element, dessen Deklaration in der Klasse "ATL::CImage" erfolgte )
Была умопомрачительная идея сделать потомка от CImage и таки выдернуть из него уже это поле (если оно конечно protected, а не private), но такой вариант кажеьтся малоперспективным - сомневаюсь, что разработчики MFC сделали получение CBitmap таким сложным.
Итак, кто-нибудь ПОМОГИТЕ иначе я спокойно не усну сегодня!
Внимание вопрос: как получить указатель на объект CBitmap из объекта CImage?
Промучившись несколько часов я нашел пока только 2 варианта:
1.
image = new CImage();
image->Load("C:\....");
CBitmap *bitmap;
bitmap->CreateBitmap(image->GetWidth(),image->GetHeight(),1,image->GetBPP(),image->GetBits());
Извращенческий способ, но он не подходит..Компилируется все успешно, но уже при запуске программы выскакивает жуткое исключение и ВСЕ!
2.
image = new CImage();
image->Load("C:\....");
CBitmap *bitmap;
bitmap = CBitmap::FromHandle(image->m_hBitmap);
Этот вариант так же не катит, так как еще на стадии компиляции компилятор орет, что поле m_hBitmap ну никак нельзя получить в открытую. ибо оно закапсулировано так, что и сам господь Бог видно не достанет. (Вот текст ошибки в оригинале: c:mfcTestsimpwin.cpp(97): error C2248: 'ATL::CImage::m_hBitmap': Kein Zugriff auf private Element, dessen Deklaration in der Klasse "ATL::CImage" erfolgte )
Была умопомрачительная идея сделать потомка от CImage и таки выдернуть из него уже это поле (если оно конечно protected, а не private), но такой вариант кажеьтся малоперспективным - сомневаюсь, что разработчики MFC сделали получение CBitmap таким сложным.
Итак, кто-нибудь ПОМОГИТЕ иначе я спокойно не усну сегодня!