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

如何設定數位板(手寫、手繪板)的操作範圍?

缺席
superrakce
一般會員


發表:23
回覆:35
積分:11
註冊:2006-10-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-09-08 10:03:29 IP:114.33.xxx.xxx 訂閱
功能需求是,使用數位板簽名並存成圖片。
電腦上並沒有安裝任何軟體,數位板經由usb接上電腦就會偵測到
目前是把他當作滑鼠的方式去達成簽名的功能。
但是數位板的繪圖(操作)範圍是整個螢幕,而簽名的範圍則是程式面畫的一小塊
與一般人使上的習慣差很多(由其是放到很大的螢幕上時),所以時常令滑鼠跑出可繪圖區

如何設定數位板(手寫、手繪板)的操作範圍等於我的可繪圖區呢?
或者有什麼元件可以操作、控制數位板?
superrakce
一般會員


發表:23
回覆:35
積分:11
註冊:2006-10-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-09-14 16:10:31 IP:114.33.xxx.xxx 訂閱
http://www.torry.net/quicksearchd.php?String=wintab&Title=Yes
從這個網址裡面下載觸控元件使用


[code delphi]
procedure TSign.SetMapping(ClientRect:TRECT);
var
TabletX, TabletY: TAxis;
AContext: TLogContextA;
NewRect, PhysRect: TRect;

function MapRectangles(A, B, C: TRect): TRect;
var
HA, HB, HC, WA, WB, WC, L, T: Integer;
begin
WA := A.Right - A.Left;
WB := B.Right - B.Left;
WC := C.Right - C.Left;
HA := A.Bottom - A.Top;
HB := B.Bottom - B.Top;
HC := C.Bottom - C.Top;

WA := WA * WB div WC;
HA := HA * HB div HC;

L := WA * C.Left div WB;
T := HA * (B.Bottom - C.Bottom) div HB;

Result.Left := -L;
Result.Right := WA;
Result.Top := A.Top - T;
Result.Bottom := A.Top HA;
end;
begin
if not JanHWinTab.Active then Exit;
AContext :=JanHWinTab.Context;
WTInfo(WTI_DEVICES, 12, @TabletX);
WTInfo(WTI_DEVICES, 13, @TabletY);
PhysRect := Rect(0, 0, Tabletx.axMax, TabletY.axMax);

NewRect := MapRectangles(PhysRect, Screen.DesktopRect, ClientRect);
AContext.lcInOrgX := NewRect.Left;
AContext.lcInOrgY := NewRect.Top;
AContext.lcInExtX := NewRect.Right;
AContext.lcInExtY := NewRect.Bottom;
JanHWinTab.Context := AContext;
end;

procedure TSign.Mappting(PaintBox: Timage);
var PainRect:trect;
begin
PainRect.Left:=pp.BoundsRect.Left self.BoundsRect.Left 5 ;
PainRect.Top:=pp.BoundsRect.Top self.BoundsRect.Top 35 panel3.Height ;
PainRect.Right:=PainRect.Left pp.Width;
PainRect.Bottom:=PainRect.Top pp.Height;
SetMapping(PainRect);
end;

[/code]
這樣子,手繪板的操作區域就等同於指定能Canvas的區域
但實際上滑鼠的位置依然是對應整個螢幕,並非眼前所看到的。
所以畫線的位置需另外計算。
系統時間:2018-01-21 13:04:11
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!