畫面會有干擾紋 , 可能是沒有跟畫面同步的問題 .. |
尚未結案
|
weme
一般會員 發表:1 回覆:2 積分:0 註冊:2005-03-16 發送簡訊給我 |
畫面會有干擾紋 , 可能是沒有跟畫面同步的問題 ..
我的timer的intvalue = 50
畫面會有雜訊 我想可能是 沒有跟畫面同步...
是嗎?
能夠指導一下 如何改善嗎 ....
以下是我的程式碼 void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
HDC ScreenDC =GetDC(0);
POINT pt;
GetCursorPos(&pt);
Label1->Caption =
"X:" AnsiString(pt.x)
" Y:" AnsiString(pt.y) ;
StretchBlt(Image1->Canvas->Handle,0,0,80,80,
ScreenDC,pt.x,pt.y,40,40,SRCCOPY);
Image1->Refresh() ;
ReleaseDC(0,ScreenDC);
} weme
------
weme |
weme
一般會員 發表:1 回覆:2 積分:0 註冊:2005-03-16 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
weme 您好: 不妨將 Timer 的 Interval 設小一點,例如 50,這樣子操作起來的視覺感受可能會較為平滑些,另外可以在 Form 的 OnCreate 事件中設定 Image1 底層物件的 DoubleBuffered 為 true,應該能改善顯示的效果,如果您的 Image1 是直接放在 Form 上面,那麼您可以這麼設定:
Form1->DoubleBuffered = true;另外;您在 Timer 中重覆不斷的宣告與清除 HDC 似乎也沒有必要,我將您的程式改寫如下,執行起來的效果還算可以,您參考看看: HDC ScreenDC; POINT pt; void __fastcall TForm1::FormCreate(TObject *Sender) { ScreenDC = GetDC(0); Form1->DoubleBuffered = true; } void __fastcall TForm1::FormDestroy(TObject *Sender) { ReleaseDC(0,ScreenDC); } void __fastcall TForm1::Timer1Timer(TObject *Sender) { GetCursorPos(&pt); Label1->Caption = "X:" AnsiString(pt.x) " Y:" AnsiString(pt.y); StretchBlt(Image1->Canvas->Handle, 0, 0, 80, 80, ScreenDC, pt.x, pt.y, 40, 40, SRCCOPY); Image1->Refresh(); }7 天天敲鍵盤 v 時時按滑鼠 8 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |