var
LCanvas: TCanvas;
a: HDC;
begin
a := CreateCompatibleDC(Canvas.Handle);
LCanvas := TCanvas.Create;
LCanvas.Handle := a;
LCanvas.TextOut(0,0,'asddddddddddddddddd');
BitBlt(Canvas.Handle, 0, 0, Width, Height, LCanvas.Handle, 0, 0, SRCCOPY);
LCanvas.Free;
DeleteDC(a);
end;
这样是不是就建立了内存DC?这样对吗?我运行后发现并没有把LCanvas上的内容拷贝到窗体上,跟踪后发现LCanvas的宽度长度都是1,所以才显示不了。我尝试改变LCanvas的ClipRect的大小发现他是只读的。我查遍了MSDN也没有找到改变HDC大小的API,请问如何解决?
LCanvas: TCanvas;
a: HDC;
begin
a := CreateCompatibleDC(Canvas.Handle);
LCanvas := TCanvas.Create;
LCanvas.Handle := a;
LCanvas.TextOut(0,0,'asddddddddddddddddd');
BitBlt(Canvas.Handle, 0, 0, Width, Height, LCanvas.Handle, 0, 0, SRCCOPY);
LCanvas.Free;
DeleteDC(a);
end;
这样是不是就建立了内存DC?这样对吗?我运行后发现并没有把LCanvas上的内容拷贝到窗体上,跟踪后发现LCanvas的宽度长度都是1,所以才显示不了。我尝试改变LCanvas的ClipRect的大小发现他是只读的。我查遍了MSDN也没有找到改变HDC大小的API,请问如何解决?
解决方案 »
- 自适应列宽问题,为什么这个处理过程不能完全实现效果呢?
- 水晶报表如何和数据库组件连接
- 300元求购短信发送控件!
- 如何创建二进制文件
- 如何获得当前CPU的利用率,即用任务管理器看到的那个CPU利用率,有什么函数!
- 这些函数的用法有那里不对吗?还请帮忙看看..
- 文件流是什么意思
- SQL server 2000中如何管理全文检索和全文索引,它的delphi接口是什么?
- 很菜的问题,帮我解释一下Pred()函数
- 图形显示问题
- 开发环境是delphi5.0+sql2000,经常有这样的异常,请教一个好的解决办法
- 有没有TCheckBoxGroup控件? 或者TRadioGroup控件中Titem前的选中框能不能改成方框?就像TCheckBox那样!
var
LCanvas: TCanvas;
a: HDC;
b: HBITMAP;//add
begin
a := CreateCompatibleDC(Canvas.Handle);
LCanvas := TCanvas.Create;
LCanvas.Handle := a;
b:=CreateCompatibleBitmap(a,100,100);//add
SelectObject(a,b);//add
LCanvas.TextOut(0,0,'asddddddddddddddddd');
BitBlt(Canvas.Handle, 0, 0, Width, Height, LCanvas.Handle, 0, 0, SRCCOPY);
LCanvas.Free;
DeleteDC(a);
DeleteObject(b);//add
end;
你bitblt是使用SRCCOPY方式把一整块拷贝过后,当然也会把黑色拷贝过去.