怎样绘制比屏幕大的图形??

halflife 2000-08-02 04:41:00
我想用Canvas->LineTo();绘制从(0,0)到(1000,1000)的直线,但只能画到屏幕边缘,超出部分无法显示,我猜要用滚动条,但不知如何用,请各位大虾帮忙!
...全文
100 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
mxp 2000-08-07
  • 打赏
  • 举报
回复
画在一个TCanvas上,
或画在一个TImage上

如:定义一个指针
//窗体头文件.h中

...
private:
TImage *tx;

...

在程序中写:
tx=new TImage(Owner);
tx->Width=1000;
tx->Height=1000;
tx->LineTo();
//用各种滚动方式都行,只要变位置
....
Canvas->CopyRect(.....);
....

最后记着delete tx;就行了

alexela 2000-08-03
  • 打赏
  • 举报
回复
FORM的CANVAS绘图,因为多余部分要被切掉,所以加上滚动条也没有用,
解决1: 重载PAINT方法,或填写ONPAINT事件,保证每次都能随窗体的自画而自画
解决2:用BITMAP、TIMAGE,在他们的图象区内绘制(高宽可自己定义——正如你所想的),由于他们对图象有记忆功能,所以不必要重画
alexela 2000-08-02
  • 打赏
  • 举报
回复
直接用FORM的CANVAS画图,超出的部分都会被截掉,并且因为是手工画的,没重画功能,所以用滚动条也没用。
解决方法1: 重载PAINT函数,或在ONPAINT事件中激发绘图语句
解决方法2: 用BITMAP、IMAGE的CANVAS,这样所绘图形能够自己保留而不用重画

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧