Я использую Visual Studio 2008, у меня есть файл PNG, загруженный в представление ресурсов, которому присвоен IDB_BANG_PNG.Программная настройка PNG для управления изображениями в API Win32
Контроль изображения называется IDC_STATIC15.
У меня возникли проблемы с попыткой загрузить PNG в элемент управления изображением.
LRESULT CALLBACK DialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
// Way of loading a bmp with a mask perhaps? Or a PNG file programatically?
static HBRUSH hBrushStatic;
HBITMAP hBmp = LoadBitmap(hDlg,MAKEINTRESOURCE(IDB_BANG_PNG));
switch(message)
{
case WM_INITDIALOG:
CheckDlgButton(hDlg, IDC_CHECK, FALSE);
EnableWindow(GetDlgItem(hDlg, IDOK), FALSE);
// Bitmap version is IDB_BANG, PNG is at IDB_BANG_PNG
// IDC_STATIC15 is the picture frame
HWND item = GetDlgItem(hDlg,IDC_STATIC15);
SendMessage(item,STM_SETIMAGE,IMAGE_BITMAP,(LPARAM)hBmp);
return TRUE;
// .... snip
Я довольно наивны, когда речь идет о развитии Win32/GUI, делая быстрый проект и застрял ее, любая помощь приветствуется.
Вам нужен растровый файл. Вы хотите преобразовать изображение PNG в изображение BMP. – anno
Я читал, что вы можете поддерживать PNG, но вы должны делать это программно. Когда я добавляю изображения, используя фильтр изображения hte, * .png является одним из перечисленных элементов. –
Проблема в том, что мне нравится поддерживать прозрачный фон, поэтому я хочу использовать PNG. Если я не могу создать маску с помощью BMP или разрешить файлу ICO использовать значок большего размера, а не 32x32. –