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

請問用滑鼠點選擷取螢幕上的一塊區域的問題

尚未結案
qubeley2004
一般會員


發表:52
回覆:71
積分:24
註冊:2004-07-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-21 17:29:23 IP:211.76.xxx.xxx 未訂閱
我是想要讓滑鼠點兩個不同的地方,可以讓他擷取螢幕上的方形區塊    參考了板上的文章打算使用     TPoint cursorPos; GetCursorPos(&cursorPos);    去取得螢幕上的位置 然後用一個buttom 去自動存取那塊螢幕,並存檔    想請問,要如何取得當滑鼠點選時的那個位置呢???    因為指標會不在原本的程式Form上面~不曉得要怎麼樣去取得滑鼠點選的位置~    
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-21 18:10:41 IP:219.137.xxx.xxx 未訂閱
參考一下這一個由 RaynorPao 版主發表的範例: 利用滑鼠截取 Image 的部分區域 http://delphi.ktop.com.tw/topic.php?topic_id=34115
qubeley2004
一般會員


發表:52
回覆:71
積分:24
註冊:2004-07-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-21 21:14:04 IP:211.76.xxx.xxx 未訂閱
引言: 參考一下這一個由 RaynorPao 版主發表的範例: 利用滑鼠截取 Image 的部分區域 http://delphi.ktop.com.tw/topic.php?topic_id=34115
謝謝你, 可是現在問題是說..當我要取的東西不是在自己設計的Form的裡面 而是在Form的外面,所以不曉得要如何利用事件去觸發以及紀錄Form外 所按下滑鼠的位置.
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-21 21:28:32 IP:219.137.xxx.xxx 未訂閱
您可以新增一個 Form,並在它的建構函式中做下列設定:
BorderStyle = bsNone;
Brush->Style = bsClear;
SetBounds(0, 0, Screen->Width, Screen->Height);
這樣會使得這個 Form 在 Show 出來時,變成 "透明" 的狀態,並且 "罩" 在所有視窗上方,您可以在您的 MainForm 中叫出這個 Form,然後將這個 "透明罩" 當作一張畫布,並透過它的 OnMouseDown....等事件來做擷取畫面的處理。
cashyy
高階會員


發表:117
回覆:322
積分:212
註冊:2004-04-30

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-05-22 00:43:23 IP:211.74.xxx.xxx 未訂閱
我這裡有一個source code是抓取桌面任一區域圖像,可以給您參考! http://home.kimo.com.tw/cashyy2000/ch02-04-2.zip 希望對您有幫助!
qubeley2004
一般會員


發表:52
回覆:71
積分:24
註冊:2004-07-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-05-22 04:38:04 IP:211.76.xxx.xxx 未訂閱
感謝兩位的幫忙    之前想的太複雜= =,結果弄很久,終於搞定    想在請問另外一個問題,就是當我在Form畫面上拖曳的時候    請問要如何出現那種方塊型的拖曳框框,而放開之後就消失掉    不需傳回或是紀錄任何的資訊~    發現要是沒有顯示拖曳痕跡有點怪怪的..
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-05-22 05:09:35 IP:219.137.xxx.xxx 未訂閱
參考一下我回覆其他人的作法,該方法是將一個圈選的區域,以反白方式標示出來,若不想用反白的效果,可以設成 "透空" 的方式來處理:    http://delphi.ktop.com.tw/topic.php?TOPIC_ID=64757
qubeley2004
一般會員


發表:52
回覆:71
積分:24
註冊:2004-07-13

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-05-22 14:13:57 IP:211.76.xxx.xxx 未訂閱
引言: 參考一下我回覆其他人的作法,該方法是將一個圈選的區域,以反白方式標示出來,若不想用反白的效果,可以設成 "透空" 的方式來處理: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=64757
嗯..我用了bsClear的結果變成還是看不到那個最外圍的框框, 不過可以用改變滑鼠的型態表示,至少和原本有點差別XD 謝謝幫忙~~
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-05-22 15:22:03 IP:219.136.xxx.xxx 未訂閱
您可能未設定畫筆顏色,同時畫筆模式可能也要改一下比較好,試試看改成如下之設定:
// 設畫筆為 xor 模式
Image1->Picture->Bitmap->Canvas->Pen->Mode = pmNotXor;
// 設畫筆的繪製模式為 NotXor
Image1->Picture->Bitmap->Canvas->Pen->Color = clRed;
// 設畫筆的筆刷圖樣為透空的
Image1->Picture->Bitmap->Canvas->Brush->Style = bsClear;
qubeley2004
一般會員


發表:52
回覆:71
積分:24
註冊:2004-07-13

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-05-29 13:24:18 IP:211.76.xxx.xxx 未訂閱
引言: 您可能未設定畫筆顏色,同時畫筆模式可能也要改一下比較好,試試看改成如下之設定:
// 設畫筆為 xor 模式
Image1->Picture->Bitmap->Canvas->Pen->Mode = pmNotXor;
// 設畫筆的繪製模式為 NotXor
Image1->Picture->Bitmap->Canvas->Pen->Color = clRed;
// 設畫筆的筆刷圖樣為透空的
Image1->Picture->Bitmap->Canvas->Brush->Style = bsClear;
嗯~! 果然是我忘記設定了,已經弄好了,謝謝
系統時間:2024-05-03 6:25:05
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!