如何用API函数实现控件的置前与置后(50分)

  • 主题发起人 主题发起人 xingkong97
  • 开始时间 开始时间
X

xingkong97

Unregistered / Unconfirmed
GUEST, unregistred user!
如何用API函数实现控件的置前与置后
 
VCL是这样的,
procedure TControl.SetZOrderPosition(Position: Integer);
var
I, Count: Integer;
ParentForm: TCustomForm;
begin
if FParent <> nil then
begin
I := FParent.FControls.IndexOf(Self);
if I >= 0 then
begin
Count := FParent.FControls.Count;
if Position < 0 then Position := 0;
if Position >= Count then Position := Count - 1;
if Position <> I then
begin
FParent.FControls.Delete(I);
FParent.FControls.Insert(Position, Self);
InvalidateControl(Visible, True);
ParentForm := ValidParentForm(Self);
if csPalette in ParentForm.ControlState then
TControl(ParentForm).PaletteChanged(True);
end;
end;
end;
end;
 
置后
SetWindowPos(button1.Handle, HWND_BOTTOM , 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
置前
SetWindowPos(button1.Handle, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
 
多人接受答案了。
 
后退
顶部