ホーム » 2024 » 6月 » 04

日別アーカイブ: 2024/06/04

2024年6月
 1
2345678
9101112131415
16171819202122
23242526272829
30  

カテゴリー

アーカイブ

ブログ統計情報

  • 86,074 アクセス


CBitmap の表示

ツールバーのビットマップをリサイズするために CBitmap を調べ始めた.
Inside VC++ Version 5 を参考に次の様に書いてみた.
プログラミング Visual C++ .NET では省かれている?

void CT_CBmpView::OnDraw(CDC* pDC)
{
//	CT_CBmpDoc* pDoc = GetDocument();
//	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	{
		CDC 	dc_mem ;	dc_mem.CreateCompatibleDC(pDC) ;
		CBitmap	bitmap ;	bitmap.LoadBitmap(IDR_MAINFRAME) ;
		BITMAP	bm = {0} ;	bitmap.GetBitmap(&bm) ;
		{
			CRect	rect(0,0,0,0) ;
			GetClientRect(&rect) ;
			rect.DeflateRect(100,100,200,200) ;
			::SetStretchBltMode(pDC->GetSafeHdc(),HALFTONE) ;
			dc_mem.SelectObject(&bitmap) ;
		//	pDC->BitBlt    (rect.left,rect.top,rect.right,rect.bottom,&dc_mem,0,0,SRCCOPY) ;
			pDC->StretchBlt(rect.left,rect.top,rect.right,rect.bottom,
				&dc_mem,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY) ;
			}
		}
	}

そのまま貼り付けてテスト可能な様に View の OnDraw に書いています.
これを参考に実装する場合,リソースの読込み部分などは OnInitialUpdate などで行ってください.
CBitmap によるビットマップリソースの表示
https://itl.mish.work/i_Tools/Doc/blog/migrate/T_CB0604.zip


欲しかった CBitmap のリサイズのコードは次の所にあった.
How do you scale a CBitmap object?

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.