CPaintDC dc(this);
CRect rcclient;
GetClientRect(&rcclient); CDC memdc;
memdc.CreateCompatibleDC(&dc);
CBitmap bitmap;
bitmap.CreateCompatibleBitmap(&dc, rcclient.Width(), rcclient.Height());
memdc.SelectObject( &bitmap ); CWnd::DefWindowProc(WM_PAINT, (WPARAM)memdc.m_hDC , 0); CDC maskdc;
maskdc.CreateCompatibleDC(&dc);
CBitmap maskbitmap;
maskbitmap.CreateBitmap(rcclient.Width(), rcclient.Height(), 1, 1, NULL);
maskdc.SelectObject( &maskbitmap );
maskdc.BitBlt( 0, 0, rcclient.Width(), rcclient.Height(), &memdc,
rcclient.left, rcclient.top, SRCCOPY); CBrush brush;
brush.CreatePatternBrush(&m_bitmap);
dc.FillRect(rcclient, &brush);
memdc.SetBkColor(RGB(0,0,0));
memdc.SetTextColor(RGB(255,255,255));
memdc.BitBlt(rcclient.left, rcclient.top, rcclient.Width(), rcclient.Height(),
&maskdc, rcclient.left, rcclient.top, SRCAND); dc.SetBkColor(RGB(255,255,255));
dc.SetTextColor(RGB(0,0,0));
dc.BitBlt(rcclient.left, rcclient.top, rcclient.Width(), rcclient.Height(),
&maskdc, rcclient.left, rcclient.top, SRCAND);
dc.BitBlt(rcclient.left, rcclient.top, rcclient.Width(), rcclient.Height(),
&memdc, rcclient.left, rcclient.top,SRCPAINT);
brush.DeleteObject();
}
CRect rcclient;
GetClientRect(&rcclient); CDC memdc;
memdc.CreateCompatibleDC(&dc);
CBitmap bitmap;
bitmap.CreateCompatibleBitmap(&dc, rcclient.Width(), rcclient.Height());
memdc.SelectObject( &bitmap ); CWnd::DefWindowProc(WM_PAINT, (WPARAM)memdc.m_hDC , 0); CDC maskdc;
maskdc.CreateCompatibleDC(&dc);
CBitmap maskbitmap;
maskbitmap.CreateBitmap(rcclient.Width(), rcclient.Height(), 1, 1, NULL);
maskdc.SelectObject( &maskbitmap );
maskdc.BitBlt( 0, 0, rcclient.Width(), rcclient.Height(), &memdc,
rcclient.left, rcclient.top, SRCCOPY); CBrush brush;
brush.CreatePatternBrush(&m_bitmap);
dc.FillRect(rcclient, &brush);
memdc.SetBkColor(RGB(0,0,0));
memdc.SetTextColor(RGB(255,255,255));
memdc.BitBlt(rcclient.left, rcclient.top, rcclient.Width(), rcclient.Height(),
&maskdc, rcclient.left, rcclient.top, SRCAND); dc.SetBkColor(RGB(255,255,255));
dc.SetTextColor(RGB(0,0,0));
dc.BitBlt(rcclient.left, rcclient.top, rcclient.Width(), rcclient.Height(),
&maskdc, rcclient.left, rcclient.top, SRCAND);
dc.BitBlt(rcclient.left, rcclient.top, rcclient.Width(), rcclient.Height(),
&memdc, rcclient.left, rcclient.top,SRCPAINT);
brush.DeleteObject();
}
解决方案 »
- 服务程序的一个问题!
- 数据库开发交流群号:1435478
- 请教:从 数据库表 生成 TreeView 的问题
- 【SQL语句】如何得到字符型字段的最大值?(追加高分,在线等待)
- 白高兴了,300分被删了,抗议!!!!!!
- 各位高手,怎样一次向DBGrid中插入多条记录?
- delphi5的ado连接是不是有问题,还是access的问题?dataset为空就不能正常关闭!连接了的表就不能用sql查询!
- 应用程序运行问题?
- ADODataSet关闭问题?
- 怎么才能使serverSocket每一秒种轮寻检查客户端发送过来的数据
- 对话框间的通信!
- worm.tanatos.5632有谁认得这个病毒!!怎么彻底清除!!!
bmp,maskbmp:TBitmap;
begin
bmp:=TBitmap.Create;
maskBmp:=TBitmap.Create;
maskBmp:=TBitmap.Create;
maskBmp.Width:=form1.ClientWidth;
maskBmp.Height:=form1.ClientHeight;
bitblt(maskbmp.Canvas.Handle,0,0,clientWidth,clientHeight,bmp.Canvas.Handle,0,0,SRCCOPY); form1.Canvas.FillRect(form1.ClientRect); bmp.Canvas.Brush.Color:=rgb(0,0,0);
bmp.Canvas.Pen.Color:=rgb(255,255,255);
bitblt(bmp.Canvas.Handle,0,0,clientWidth,clientHeight,maskbmp.Canvas.Handle,0,0,clientWidth,clientHeight,SRCAND); //....
end;
var
bmp,maskbmp:TBitmap;
begin
bmp:=TBitmap.Create;
maskBmp:=TBitmap.Create;
maskBmp.Width:=form1.ClientWidth;
maskBmp.Height:=form1.ClientHeight;
bitblt(maskbmp.Canvas.Handle,0,0,clientWidth,clientHeight,bmp.Canvas.Handle,0,0,SRCCOPY); FORM1.Canvas.Brush.Style:=bsDiagCross;
form1.Canvas.FillRect(form1.ClientRect); bmp.Canvas.Brush.Color:=rgb(0,0,0);
bmp.Canvas.Pen.Color:=rgb(255,255,255);
bitblt(bmp.Canvas.Handle,0,0,clientWidth,clientHeight,maskbmp.Canvas.Handle,0,0,SRCAND); //剩下的自己写吧end;
演示了把图片绘制到TreeView背景的技术。