15,980
社区成员
发帖
与我相关
我的任务
分享
void CImageDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值..........................................
CSliderCtrl*pSlider=(CSliderCtrl*)pScrollBar;
m_alpha=(100.0-pSlider->GetPos())/100.0;
UpdateData(FALSE);
//UpdateWindow();
CDialogEx::OnHScroll(nSBCode, nPos, pScrollBar);
}
void CGdiPlus_ColorView::OnDraw(CDC* pDC)
{
CGdiPlus_ColorDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
if (pDoc->image==NULL)
{
return;
}
dlg=new CImageDlg;
alpha=dlg->m_alpha;
int nWidth=pDoc->image->GetWidth();
int nHight=pDoc->image->GetHeight();
Bitmap bitmap(nWidth,nHight);
Rect rect(0,0,nWidth,nHight);
Graphics temp(&bitmap);//对新图像进行绘制
ColorMatrix colorMartrix={
1,0,0,0,0,
0,1,0,0,0,
0,0,1,0,0,
0,0,0,alpha,0,
0,0,0,0,1};
ImageAttributes imageAttr;
imageAttr.SetColorMatrix(&colorMartrix);
temp.DrawImage(pDoc->image,rect,0,0,nWidth,nHight,UnitPixel,&imageAttr);
Graphics graph(pDC->GetSafeHdc());//获得当前设备的句柄
//Image image(L"E:\\test.bmp");
//Image* image=Image::FromFile(pDoc->imagepath);
// graph.DrawImage(image,0,0);
graph.DrawImage(&bitmap,0,0);
// TODO: 在此处为本机数据添加绘制代码
}