CToolBar ボタンのリサイズ
リサイズ部分を組み込んでみたが
ボタン画像の位置がズレている,DDB に対する操作が何か違っている.
試しに,新しいボタン画像サイズを次の様に求めるとそれなりの高さになった.
newImgSize.cy = newBtnSize.cy – 7 ;
newImgSize.cx = newBtnSize.cx – 7 ;
newImgSize.cy = newBtnSize.cy – 6 ;
これでサイズは良さそう.
{
CSize imageSize = newImgSize ;
imageSize.cx*= btnCount ;
static CBitmap newImg ; // CBitmap* newImg = new CBitmap ;
{
CBitmap tb_img ;
tb_img.LoadBitmap(idr) ;
{
BITMAP bm = {0} ; tb_img.GetBitmap(&bm) ;
CSize org_size = CSize(bm.bmWidth,bm.bmHeight) ;
CDC* wndDC = toolBar->GetDC() ;
newImg.CreateCompatibleBitmap(wndDC,imageSize.cx,imageSize.cy) ;
CDC srcDC ; srcDC.CreateCompatibleDC(wndDC) ;
CDC dstDC ; dstDC.CreateCompatibleDC(wndDC) ;
CBitmap*oldSrcBmp = srcDC.SelectObject(&tb_img) ;
CBitmap*oldDstBmp = dstDC.SelectObject(&newImg) ;
::SetStretchBltMode(dstDC.GetSafeHdc(),HALFTONE) ;
dstDC.StretchBlt(0,0,imageSize.cx,imageSize.cy,
&srcDC,0,0,org_size.cx,org_size.cy,SRCCOPY) ;
srcDC.SelectObject(oldSrcBmp) ;
dstDC.SelectObject(oldDstBmp) ;
}
}
toolBar->SetBitmap(newImg) ;
}
static CBitmap newImg としているため,複数のツールバーには対応していません.
CBitmap* newImg = new CBitmap の様にして終了時開放する必要があります.