GDI+ DrawImage не будет отображаться

Я пытаюсь отобразить файл PNG в приложении Visual C++. Я пробовал различные методы в течение последних шести или восьми часов, и сейчас мне нужна помощь. Я адаптировал следующие строки из нескольких руководств. Почему не отображается изображение?

Gdiplus::Graphics graphics(hdc);
Gdiplus::Image * image = Gdiplus::Image::FromFile(L"C:\\test.png");       
graphics.DrawImage(image,0,0);

Спасибо за помощь!


person user44184    schedule 01.10.2013    source источник
comment
Или, если есть лучший рекомендуемый способ отображения файла PNG, это тоже было бы здорово!   -  person user44184    schedule 02.10.2013
comment
Где ты это делаешь? Откуда hdc?   -  person Igor Tandetnik    schedule 02.10.2013
comment
Вы проверили, что файл изображения загружается правильно?   -  person Jonathan Potter    schedule 02.10.2013


Ответы (1)


Рискуя констатировать очевидное, инициализировали ли вы GDI+ с помощью:

Gdiplus::GdiplusStartupInput gdiplusStartupInput;
Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);

Кроме того, как говорили другие, откуда взялся hdc и успешно ли создан образ?

person Redeye    schedule 02.10.2013
comment
Упс - не понял, что это было необходимо, так что спасибо за изложение очевидного :) Единственная оставшаяся проблема заключается в том, что изображение не сохраняется в окне. Он перерисовывается при изменении размера окна, но потом быстро исчезает. Любые идеи о том, почему? - person user44184; 02.10.2013
comment
Либо изображение, которое вы загрузили, выходит за рамки, либо DrawImage() отсутствует в вашем OnPaint()/OnDraw()? - person Redeye; 05.10.2013