Tôi sử dụng Visual Studio 2008, tôi có tệp PNG được tải trong Chế độ xem tài nguyên, gán IDB_BANG_PNG.Cài đặt một cách có định dạng PNG thành Điều khiển ảnh trong các API Win32
Điều khiển hình ảnh được gọi là IDC_STATIC15.
Tôi gặp sự cố khi cố gắng tải tệp PNG vào điều khiển hình ảnh.
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
Tôi khá ngây thơ khi nói đến việc phát triển Win32/GUI, thực hiện một dự án nhanh chóng và gặp khó khăn, mọi trợ giúp đều được đánh giá cao.
Bạn cần tệp bitmap. Bạn muốn chuyển đổi hình ảnh PNG sang hình ảnh BMP. – anno
Tôi đọc rằng bạn có thể hỗ trợ PNG nhưng bạn phải làm điều đó theo chương trình. Khi tôi thêm hình ảnh, sử dụng bộ lọc hình ảnh hte, * .png là một trong các mục được liệt kê. –
Vấn đề là, tôi muốn duy trì nền trong suốt, do đó tại sao tôi muốn sử dụng PNG. Trừ khi, tôi có thể tạo mặt nạ bằng cách sử dụng BMP hoặc cho phép tệp ICO sử dụng biểu tượng có kích thước lớn hơn thay vì 32x32. –