tcanvas怎么创建使用?createdc怎么用? ( 积分: 200 )

  • 主题发起人 主题发起人 FreeAndNil
  • 开始时间 开始时间
F

FreeAndNil

Unregistered / Unconfirmed
GUEST, unregistred user!
我想把在一个tcanvas上作图,然后把画完的图整个拷贝到另外一个canvas上(想加快显示速度),我想直接用tcanvas,但是tcanvas创建出来后却不能往上画东西,发现是没有dc,用getdc(handle)是可以画了,但是这样是直接画在这个handle上的。

用CreateDC('DISPLAY', nil, nil, nil);,但是这样往canvas上画就直接画在屏幕上了,不太清楚该怎么用这个函数,能不能直接创建一个dc而不是输出到屏幕上?

我想要的结果是:在一个隐藏(不显示出来)的canvas上作图,然后把作完的图,整个拷贝到指定的canvas上,可以吗?

注:不想用timage、tbitmap做,只用tcanvas,谢了。
 
其实平时做双缓冲的时候就是创建一个TBitMap用它的Canvas画完以后再Copy到真正想画的Canvas上
 
但是如果我现在想用tcanvas呢?一定要用bitmap吗?我想试试只用canvas行吗?bitmap有canvas,但我不知道它是怎么创建的,想学习一下。
 
DC 就是用来显示的,想不显示就用 TBitMap
 
想知道TBitMap怎么做到的,看代码真是看不懂,水平太差了[:(]
 
非要用TCanvas的你可以先TCanvas.Create;创建一个Canvas.然后创建一个memDC.
把memDC付给Canvas.Handle.就可以操作这个Canvas了.
至于创建MemDC可以先CreateDC创建一个DC然后hMemDC:= CreateCompatibleDC(这个DC);
具体使用你去网上搜一下吧.我不想写代码
 
好的,谢谢指导,非常感谢了。
 
你要做到什么?BitMap里不过是些内存,要话的时候再调用DC
 
学习学习
 
白河愁,我只是自己创建一个canvas使用,不想依附其他控件,本来以为很简单,create后就可以往上画,可用起来发现不一样。

请不要嫌我多事,我也是想学习提高一下,现在看来,要学的还多,要好好学习一下api。
 
后退
顶部