S
SuKiDelphi
Unregistered / Unconfirmed
GUEST, unregistred user!
我想做一个程序(DELPHI的)...只想让我的主程序(有一张动图片..坐着的人)可以坐在前台窗口上的标题栏上.....
下面的得到前台窗口的代码(自已觉得下面的写法不好)...
var
OldHandle, NewHandle, MyThread : THandle;//定义一个句柄
MyThreadID : DWord;
ThreadEvent : Boolean = False;
function MyGetForegroundWindow(P : Pointer) : LongInt; stdcall;
var
buffer : array[0..255] of Char;
begin
repeat
NewHandle := GetForegroundWindow;
if NewHandle <> OldHandle then
begin
OldHandle := NewHandle;
坐上去(用 SetWindowPos 把自已的Form1...设为 TOPMOST...不改变活动窗口)
end;
until ThreadEvent;
end;
procedure Form1.FormCreate(Sender: TObject);
begin
// 不好啊...占用率太了点, 不过我没办法...
MyThread := CreateThread(nil, 0, @SetForegroundWindowTitle, nil, 0, MyThreadID);
end;
现在....当用户拖动前台窗口时...我的窗口也要一起拖动...
我试过用 Hook 来取 WM_MOVE后再处理我的窗口(要和前台窗口一起拖动)...
但水平不够......
下面的得到前台窗口的代码(自已觉得下面的写法不好)...
var
OldHandle, NewHandle, MyThread : THandle;//定义一个句柄
MyThreadID : DWord;
ThreadEvent : Boolean = False;
function MyGetForegroundWindow(P : Pointer) : LongInt; stdcall;
var
buffer : array[0..255] of Char;
begin
repeat
NewHandle := GetForegroundWindow;
if NewHandle <> OldHandle then
begin
OldHandle := NewHandle;
坐上去(用 SetWindowPos 把自已的Form1...设为 TOPMOST...不改变活动窗口)
end;
until ThreadEvent;
end;
procedure Form1.FormCreate(Sender: TObject);
begin
// 不好啊...占用率太了点, 不过我没办法...
MyThread := CreateThread(nil, 0, @SetForegroundWindowTitle, nil, 0, MyThreadID);
end;
现在....当用户拖动前台窗口时...我的窗口也要一起拖动...
我试过用 Hook 来取 WM_MOVE后再处理我的窗口(要和前台窗口一起拖动)...
但水平不够......