L
Luis Pater
Unregistered / Unconfirmed
GUEST, unregistred user!
上面哪些程序当然不能在其他的窗体上画框!
procedure MakeIt(WantHandle:HWND);
var
DC:hDC;
MyRect:TRect;
begin
DC := GetWindowDC(WantHandle);
Canvas.Handle:=dc;
Canvas.Pen.Mode:=pmXor;
//Canvas.Pen.Color:=RGB(255, 100, 0);
Canvas.Pen.Color:=RGB(255, 255, 255);
Canvas.Pen.Width:=5;
Canvas.Brush.Style:=bsClear;
GetWindowRect(MyHandle,MyRect);
Canvas.Rectangle(0,0,MyRect.Right-MyRect.Left-1,MyRect.Bottom-MyRect.Top-1);
end;
这段代码只要配合一个与以下类似的过程就可以在其他窗体上画框:
var
MyHandle:HWND;
P:TPoint;
begin
GetCursorPos(P);
MyHandle:=WindowFromPoint(P);
MakeIt(MyHandle);
end;
但是以上这些代码仅仅是反色线条,并不是我要的指定的颜色的线条!
问题是画四条直线的方法我也用过了!很不理想!还有就是 beyondair 的后面的那种方法
也不可行!因为我应用这个程序的范围不单单是 Windows 9x、2000这些基本平台,还需要
考虑到 Windows XP 用了一些界面增强以后的特殊的窗体……[][][][]
procedure MakeIt(WantHandle:HWND);
var
DC:hDC;
MyRect:TRect;
begin
DC := GetWindowDC(WantHandle);
Canvas.Handle:=dc;
Canvas.Pen.Mode:=pmXor;
//Canvas.Pen.Color:=RGB(255, 100, 0);
Canvas.Pen.Color:=RGB(255, 255, 255);
Canvas.Pen.Width:=5;
Canvas.Brush.Style:=bsClear;
GetWindowRect(MyHandle,MyRect);
Canvas.Rectangle(0,0,MyRect.Right-MyRect.Left-1,MyRect.Bottom-MyRect.Top-1);
end;
这段代码只要配合一个与以下类似的过程就可以在其他窗体上画框:
var
MyHandle:HWND;
P:TPoint;
begin
GetCursorPos(P);
MyHandle:=WindowFromPoint(P);
MakeIt(MyHandle);
end;
但是以上这些代码仅仅是反色线条,并不是我要的指定的颜色的线条!
问题是画四条直线的方法我也用过了!很不理想!还有就是 beyondair 的后面的那种方法
也不可行!因为我应用这个程序的范围不单单是 Windows 9x、2000这些基本平台,还需要
考虑到 Windows XP 用了一些界面增强以后的特殊的窗体……[][][][]