線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1694
推到 Plurk!
推到 Facebook!

如何解決繪圖時螢幕閃爍的問題!

答題得分者是:taishyang
bcb12345
一般會員


發表:2
回覆:0
積分:0
註冊:2004-06-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-11-29 13:05:06 IP:203.69.xxx.xxx 未訂閱
各位前輩:     不知有否此經驗:在image繪圖配合滑鼠移動時螢幕會出現閃爍現象,怎麼解都無法解決,且問題並不在cpu or 顯示卡的速度(會改善但無法消除).附上test的source code,有解否?謝謝! //---------------------------------------------------------------------------    #include  #pragma hdrstop #include "EM.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TRect ImgRect_temp; ATOM atom; //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::show_panelClick(TObject *Sender) { int i=0,j=0,x=0,y=0; Image->Canvas->Pen->Width=1; Image->Canvas->Brush->Style=bsSolid; Image->Canvas->Pen->Color=(Graphics::TColor)clGray; Image->Canvas->Rectangle(0,0,500,200); Image->Canvas->Pen->Width=1; Image->Canvas->Pen->Style=psSolid; for(i=0;i<8;i ) { y =20; Image->Canvas->MoveTo(0,y); Image->Canvas->LineTo(500,y); } x=0; for(i=0;i<9;i ) { x =40; Image->Canvas->MoveTo(x,0); Image->Canvas->LineTo(x,200); } } //---------------------------------------------------------------------------} //--------------------------------------------------------------------------- void __fastcall TForm1::ImageMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { Image->Canvas->Pen->Style=psSolid; Image->Canvas->Brush->Style=bsClear; Image->Canvas->Pen->Color=(Graphics::TColor)clBlue; Image->Canvas->CopyRect(ImgRect_temp,Image2->Canvas,ImgRect_temp); Image->Canvas->Rectangle(0,0,X,Y); } //--------------------------------------------------------------------------- void __fastcall TForm1::FormShow(TObject *Sender) { show_panelClick(Sender); ImgRect_temp=Rect(0,0,Image->Width,Image->Height); Image2->Canvas->CopyRect(ImgRect_temp,Image->Canvas,ImgRect_temp); } //---------------------------------------------------------------------------
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-11-29 15:02:42 IP:210.68.xxx.xxx 未訂閱
您好: 請多多利用[搜尋]功能,關鍵字為[閃爍]        PO程式碼的方式與版規說明請參考下面連結,煩請修改謝謝您的配合 >
系統時間:2024-05-07 22:03:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!