首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

一个困扰了偶多日的有关问题:关于 Image 上做图,移动鼠标怎么彻底不闪烁的有关问题

2012-02-28 
一个困扰了偶多日的问题:关于 Image 上做图,移动鼠标如何彻底不闪烁的问题。源码如下://------------------

一个困扰了偶多日的问题:关于 Image 上做图,移动鼠标如何彻底不闪烁的问题。
源码如下:
//---------------------------------------

#include   <vcl.h>
#pragma   hdrstop

#include   "Unit1.h "
//---------------------------------------
#pragma   package(smart_init)
#pragma   resource   "*.dfm "
TForm1   *Form1;
//---------------------------------------
__fastcall   TForm1::TForm1(TComponent*   Owner)
                :   TForm(Owner)
{
}
//---------------------------------------

void   __fastcall   TForm1::FormShow(TObject   *Sender)
{
        Image1-> Canvas-> Ellipse(60,60,20,20);
        Image1-> Canvas-> MoveTo(40,5);
        Image1-> Canvas-> LineTo(20,70);
        Image1-> Canvas-> LineTo(40,45);
        Image1-> Canvas-> LineTo(60,70);
        Image1-> Canvas-> LineTo(40,5);
  //可能由于在   Form   上用了一张   gif   图片,在此处用了下句也不顶用,迷惑中~~~
        Form1-> DoubleBuffered=true;
}
//---------------------------------------
void   __fastcall   TForm1::Image1MouseMove(TObject   *Sender,   TShiftState   Shift,int   X,   int   Y)
{
        Image1-> Canvas-> TextOut(Image1-> Width-240,30, "鼠标位置: "+IntToStr(Mouse-> CursorPos.y)+ "   ,   "+IntToStr(Mouse-> CursorPos.x));
}
//---------------------------------------
当在   Image   上移动鼠标时,屏幕还是轻微的闪烁,试验多次未果,极其迷茫,在此请教高手指点,谢谢。如何做到屏幕彻底不闪烁?

[解决办法]
建议用PaintBox组件,写在OnPaint事件里面。
[解决办法]
直接到Form上画
[解决办法]
建议用PaintBox组件,写在OnPaint事件里面。
内存画
[解决办法]
Image1-> Parent-> DoubleBuffered = true;
[解决办法]
不过我自己喜欢用 TPaintBox
[解决办法]
在内存中new个Image,在此Image上画,外部的控件Image1只是最为显示用,看看可否?

热点排行