抓取固定大小(48x48)的图像时,随鼠标移动的矩形(48x48)如何实现?(50分)

  • 主题发起人 主题发起人 yhbing
  • 开始时间 开始时间
Y

yhbing

Unregistered / Unconfirmed
GUEST, unregistred user!
抓取固定大小(48x48)的图像时,随鼠标移动的矩形(48x48)如何实现?
像microangelo抓图中的固定大小(如:48x48)随鼠标移动的矩形
 
WH_MOUSE hook, monitor WM_MOVE, use DrawFocusRect to draw rectangle.
 
To lichenbin:能否写出完整的代码?
 
Give you an very simple demo not using mouse hook, but can get your result.

var
P0: TPoint;
First: Boolean = True;

// Set Timer1.Interval := 50; or other value.
procedure TForm1.Timer1Timer(Sender: TObject);
var
P: TPoint;
DC: HDC;
begin
GetCursorPos(P);
DC := GetDC(0);
try
if (P0.X <> P.X) or (P0.Y <> P.Y) then
begin
if not First then
begin
DrawFocusRect(DC, Bounds(P0.X, P0.Y, 48, 48));
end
else First := False;
DrawFocusRect(DC, Bounds(P.X, P.Y, 48, 48));
P0 := P;
end;
finally
ReleaseDC(0, DC);
end;
end;
 
to lichengbin :鼠标箭头没有隐藏
 
HideCaret/ShowCaret if you really want to hide caret.
 
Sorry, please use ShowCursor function.
 
接受答案了.
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部