掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
アイコンをStretchBltで拡大縮小させたい。 (ID:66535)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
SDKです。 アイコンをウィンドウのクライアント領域に表示させたい場合、通常DrawIconやDrawIconExを使いますが、StretchBlt関数を使ってBitmapの拡大縮小のようなことをしようと思いつきまして壁に当たってしまいました。 (拡大縮小はDrawIconExでできることも承知です。) 下のようなコードで実現できると思ったんですが、表示したアイコンの背景が黒くなってしまいます。 どこがおかしいんでしょうか? static iRate; //縮尺 HDC hdc, hdc_mem; HBITMAP hBM_mem; static int w = GetSystemMetrics(SM_CXICON); static int h = GetSystemMetrics(SM_CYICON); case WM_PAINT: hdc = BeginPaint(hwnd, &ps); hdc_mem = CreateCompatibleDC(hdc); hBM_mem = CreateCompatibleBitmap(hdc, w, h); SelectObject(hdc_mem, hBM_mem); DrawIcon(hdc_mem, 0, 0, hIcon); StretchBlt(hdc, 0, 0, (w * iRate) / 100, (h * iRate) / 100, hdc_mem, 0, 0, w, h, SRCCOPY); DeleteObject(hBM_mem); DeleteDC(hdc_mem); EndPaint(hwnd, &ps); return 0;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.