Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > GDI+


Автор: ej0804 18.12.2007, 20:02
Товарищи программисты помогите пожалуйста начинающему программисту загрузить растр(bmp) из ресурсов программы классом Bitmap . В книге "Методы и алгоритмы компьютерной графики в примерах на Visual C++"  есть конструктор Bitmap(HINSTANCE hInstance,const WCHAR *bitmapName).Может кто поможет примером.

Автор: DigitSphinx 19.12.2007, 03:08
извини что то я не то ляпнул. smile 

Автор: ej0804 19.12.2007, 21:20
     Мужики я понимаю что я осел ,но может поможете разобраться.    Первый параметр (HINSTANCE ) я получаю функцией HINSTANCE hInstance=AfxGetInstanceHandle();    Потом конструктор Bitmap bitmap(hInstance,IDB_BITMAP1);  
  При компиляции выдает ошибку :C:\Program Files\Microsoft Visual Studio\MyProjects\Suchilca\SuchilcaView.cpp(121) : error C2664: '__thiscall Gdiplus::Bitmap::Gdiplus::Bitmap(const unsigned short *,int)' : cannot convert parameter 1 from 'struct HINSTANCE__ *' to 'const unsigned s  
     P.S(похоже на несоответствие типов первого параметра).


Автор: Ястребок 19.12.2007, 21:48
Цитата(ej0804 @ 19.12.2007,  19:20)
Мужики я понимаю что я осел ,но может поможете разобраться.    Первый параметр (HINSTANCE ) я получаю функцией HINSTANCE hInstance=AfxGetInstanceHandle();    Потом конструктор Bitmap bitmap(hInstance,IDB_BITMAP1);  
  При компиляции выдает ошибку :C:\Program Files\Microsoft Visual Studio\MyProjects\Suchilca\SuchilcaView.cpp(121) : error C2664: '__thiscall Gdiplus::Bitmap::Gdiplus::Bitmap(const unsigned short *,int)' : cannot convert parameter 1 from 'struct HINSTANCE__ *' to 'const unsigned s  
     P.S(похоже на несоответствие типов первого параметра).

hInstance - 1-й параметр берётся с Main.
А 2-й параметр нужно обёртывать в MAKEINTRESOURCE
Надо вот так приблизительно :


Код

int APIENTRY _tWinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)

Bitmap *m_bmp;

m_bmp = new Bitmap (hInstance, MAKEINTRESOURCE(IDB_BITMAP1));


Автор: ej0804 19.12.2007, 22:09
 По поводу первого параметра- у меня приложение документ-вид, это как мне получить к нему доступ из класса вида или из какого-нибудь свойго? При отладке приложения когда смотришь результат в функции Main параметра hInstance, он такой же что возвращает мне функция AfxGetInstanceHandle();  А компилятор при компиляции все равно выдает ошибку в строке  m_bmp = new Bitmap (hInstance, MAKEINTRESOURCE(IDB_BITMAP1)); ругаясь на первый параметр.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)