全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1611
推到 Plurk!
推到 Facebook!

視窗被覆蓋的問題

尚未結案
white66
一般會員


發表:5
回覆:4
積分:1
註冊:2006-07-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-03-12 02:02:08 IP:59.127.xxx.xxx 訂閱
底下這樣寫,在Vista上執行,如果另1個視窗(例如IE)擋到panel1,此時Image1上顯示的仍是panel1實際內容.
如果在XP或Server 2003執行卻是顯示上層視窗的內容,就是panel1被覆蓋了,這是為什麼?

請問如何做才能不被覆蓋?


[code cpp]
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
Graphics::TBitmap*Source=new Graphics::TBitmap();
TCanvas *csBuf=new TCanvas;
HDC hDC=GetDC(Panel1->Handle);
csBuf->Handle=hDC;
Source->Width=Panel1->Width;
Source->Height=Panel1->Height;
Source->Canvas->CopyRect(Rect(0, 0, Source->Width, Source->Height),csBuf, Rect(0, 0, Panel1->Width, Panel1->Height));
Image1->Picture->Assign(Source);
ReleaseDC(0,hDC);
delete csBuf;
delete Source;
}

[/code]
ikk
尊榮會員


發表:4
回覆:413
積分:768
註冊:2003-06-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-03-12 08:56:30 IP:163.28.xxx.xxx 訂閱
或許可以判斷,當Form被其他試窗遮住時就不重畫...
Form->Active
------
FPGA驗證, FPGA開發平台, http://smims.com
white66
一般會員


發表:5
回覆:4
積分:1
註冊:2006-07-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-03-15 23:54:03 IP:59.127.xxx.xxx 訂閱
那個panel是顯示擷取卡memory影像用的,會一直更新.當我打開Form2(蓋到panel)用GetDC的方式取出影像,會取到Form2的畫面.
,所以必需把pBuf改成對應到Image上,才能解決.蠻奇怪的!

StretchDIBits(VideoDc, 0, 0, 640, 480,0, 0, pBMIInfo->bmiHeader.biWidth, pBMIInfo->bmiHeader.biHeight,pBuf, pBMIInfo, DIB_RGB_COLORS, SRCCOPY);


===================引 用 ikk 文 章===================
或許可以判斷,當Form被其他試窗遮住時就不重畫...
Form->Active
系統時間:2024-04-26 22:10:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!