应该用哪一个Form事件函数??

ly_cong 2006-09-02 03:55:49
在Form上画有图形及Edit,图形和Edit中的显示需要一定操作后才能实现,当操作完成后图形及Edit显示是没有问题的,可当界面被对话框覆盖后,或者界面最小化之后(然后最大化),图形没了。
FormCreat,FormActive,ForPaint都是首先执行的函数,都不能用的。
应该怎么设置??

谢谢
...全文
268 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
BlueDeepOcean 2006-09-04
  • 打赏
  • 举报
回复
可组件的使用没有太大的关系。科学与否的衡量标准在不同的程序中根据不同的情况和要求,对其实现标准的要求也就不同。因此,衡量是否科学,关键是要看你怎样解决这个问题的。
ly_cong 2006-09-04
  • 打赏
  • 举报
回复
我实在panel上显示图形的,用panelclick速度很快,这样是不是显得不科学??
BlueDeepOcean 2006-09-04
  • 打赏
  • 举报
回复
因为画的过程是一个利用WM_PAINT消息处理的过程,也就是以一个消息循环的过程。如果你的主界面比较大的话,则处理起来就会显得慢。另外,如果不通过上面的方式,通过消息处理SC_ZOOM或SC_ICON(也就是最大化和最小化)消息的话,或许应该可以快些,但是道理是一样的。
ly_cong 2006-09-04
  • 打赏
  • 举报
回复
蓝色.深海的方法可行,就是比第一次显示的时间长了很多,最小化后再最大化需要半分钟,怎么会这么慢??第一次运行用时0.1秒。
BlueDeepOcean 2006-09-02
  • 打赏
  • 举报
回复
定义一个全局变量,放置在OnPaint事件中,根据你按钮是否点击来确定该bool变量的状态。
bool ClickOrNot;

void __fastcall TForm1::Button1Click(TObject *Sender)
{
ClickOrNot = true;
}
void __fastcall TForm1::FormPaint(TObject *Sender)
{
if (ClickOrNot)
{
你的画图/拷贝代码
}
}
ly_cong 2006-09-02
  • 打赏
  • 举报
回复
load为倒入数据按钮name
ly_cong 2006-09-02
  • 打赏
  • 举报
回复
设置标志??是某一个事件触发后,才能执行吗??
这样:
if(load->Click()!=1)
{return;}
else
(执行画图程序);

是这样吗??
jiangshx 2006-09-02
  • 打赏
  • 举报
回复
楼上正解,你可以设置一个标志,在OnPaint 中,满足这个标志再重画的
cczlp 2006-09-02
  • 打赏
  • 举报
回复
在Form的OnPaint 中重画
jone7319 2006-09-02
  • 打赏
  • 举报
回复
在窗口上加上一个Image后在Image中画
ly_cong 2006-09-02
  • 打赏
  • 举报
回复
最大化之后,还需要操作的,
geochway 2006-09-02
  • 打赏
  • 举报
回复
如果重新绘制图象的过程比较复杂,可以事先建一个TBitmap,
先绘到位图中,然后在Form的OnPaint的事件中直接把位图复制到Form上.

13,871

社区成员

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

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