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();
}
解决方案 »
- 请教报表打印问题
- 请问怎么安装fastreport啊?
- 数据采集过程中,拖动窗体采集则停止
- 如何把视频播放设成为桌面的主题内容就是用壁纸的位置播放视频
- 有谁知道Delphi 7网上升级update1(2003.01.16)的登陆名和密码?
- 不知道这是什么组件,小弟来问问老一辈
- 控件可以显示Tiff格式的图片??????急
- 请问众位高手们,在用QuickRep做报表的时候,自动换行,如果出现中英文混杂的内容,怎么样避免将汉字从中间截断?
- 请教,怎样使在WINDOWS2000下做的程序在98下显示效果变化不大。
- 如何在delphi里使用静态变量(static)?
- 对话框间的通信!
- 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背景的技术。