如何给任意一个窗体画边框,且能让这个边框保持恒久。 找东莞速达软件
function HighlightWindow(pl_hwnd: Hwnd;cor:tColor):bool;
var
ll_hDC : HDC;
lu_RECT : TRECT;
ll_Pen : HPEN;
begin
GetWindowRect(pl_hWnd,lu_RECT);
ll_hDC := GetWindowDC(pl_hWnd);
SetROP2(ll_hDC, R2_NOTXORPEN);
ll_Pen := CreatePen(ps_solid, 2, cor);
SelectObject(ll_hDC, ll_Pen);
SelectObject(ll_hDC, GetStockObject(HOLLOW_BRUSH));
Rectangle(ll_hDC, 0, 0, lu_RECT.Right - lu_RECT.Left, lu_RECT.Bottom - lu_RECT.Top);
DeleteObject(ll_Pen);
ReleaseDC(pl_hWnd, ll_hDC);
result:=true;
end;
2楼: procedure TForm1.FormPaint(Sender: TObject);
begin
HighlightWindow(XXX,XXX);
end; 如简单的进销存软件
3楼: 这是给自己创建的窗口的,我要的是别的任意的窗口(比如IE,记事本等等)也可以。
4楼: 顶!
5楼: 帮顶!
╭=========================================╮
80G海量源代码,控件,书籍全免费狂下不停!
http://www.source520.com
╰=========================================╯
6楼: 舉個例子:
procedure TForm1.FormPaint(Sender: TObject);
begin
HighlightWindow(form1.Handle,cllime);
end;
procedure TForm1.FormResize(Sender: TObject);
begin
form1.Repaint
end;
初次解答。
进销存软件版7楼: 简单说一下,你的要求不可能实现(具体原因就不解释了)
除非做一个继承窗体,加入边框的颜色,是否绘制等属性,然后所有的窗体都继承于它
8楼: hook windows重画消息,然后执行你的代码
delphi先锋网 文章更新了 www.topdelphi.net
9楼: 如果只是在鼠标拖曳过程中绘制边框。由于时间比较短,目的窗口一般不会更新,所以不需要管维持图像的问题
如果一定要维持图像,那只能用SetWindowsHookEx建立全局钩子,自己处理目的窗口的WM_PAINT消息
10楼: 晕菜,真的要用HOOK啊。
11楼: 帮顶!
╭=========================================╮
80G海量源代码,控件,书籍全免费狂下不停!
http://www.source520.com
╰=========================================╯
12楼: 看来就这样石沉大海了。再顶一下!谁能帮帮忙忙! 如东莞速达软件