私はVisual Studio 2008を使用しています。リソースビューにPNGファイルを読み込み、IDB_BANG_PNGを割り当てました。Win32 APIでPNGをピクチャコントロールに設定する
ピクチャコントロールは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はリストされた項目の1つです。 –
問題は、私は透明な背景を維持するのが好きなので、なぜPNGを使いたいのですか?ただし、BMPを使用してマスクを作成したり、ICOファイルに32x32よりも大きなサイズのアイコンを使用させたりすることはできません。 –