为了使窗口置顶,重载了如下过程:type
TXXXForm = class(TForm)
//...
procedure CreateParams(var Params: TCreateParams); override;
//...
end;implementationprocedure TXXXForm.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.WndParent := GetDesktopWindow; // 重新指定窗口的父窗口为桌面顶层窗口
end;如此一来,成功实现了窗口置顶.但该方法是在窗口创建时就改变其父窗口,而我还想得到更灵活的实现方法,随时随地都能控制窗口置顶.
终于找到SetParent这个API,想用它来动态地改变窗口的父窗口指向,以模仿上面的原理.参考了MSDN后我是这样写的:Windows.SetParent(Self.Handle, GetDesktopWindow);
SetWindowLong(Self.Handle, GWL_STYLE, GetWindowLong(Self.Handle, GWL_STYLE) and (not WS_CHILD) or WS_POPUP);但实际确不起任何效果!
是否我对 SetParent 使用得不对?或还漏掉了什么?望解答,谢谢!没有使用 SetWindowPos 或 FormStyle := fsStayOnTop,是因为它们达不到我所要的效果.
所以,请回贴的朋友不要提及 SetWindowPos 或 FormStyle := fsStayOnTop 等字眼了.
TXXXForm = class(TForm)
//...
procedure CreateParams(var Params: TCreateParams); override;
//...
end;implementationprocedure TXXXForm.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.WndParent := GetDesktopWindow; // 重新指定窗口的父窗口为桌面顶层窗口
end;如此一来,成功实现了窗口置顶.但该方法是在窗口创建时就改变其父窗口,而我还想得到更灵活的实现方法,随时随地都能控制窗口置顶.
终于找到SetParent这个API,想用它来动态地改变窗口的父窗口指向,以模仿上面的原理.参考了MSDN后我是这样写的:Windows.SetParent(Self.Handle, GetDesktopWindow);
SetWindowLong(Self.Handle, GWL_STYLE, GetWindowLong(Self.Handle, GWL_STYLE) and (not WS_CHILD) or WS_POPUP);但实际确不起任何效果!
是否我对 SetParent 使用得不对?或还漏掉了什么?望解答,谢谢!没有使用 SetWindowPos 或 FormStyle := fsStayOnTop,是因为它们达不到我所要的效果.
所以,请回贴的朋友不要提及 SetWindowPos 或 FormStyle := fsStayOnTop 等字眼了.
解决方案 »
- 定时显示已用时间和剩余时间:WaitableTimer和线程封装的问题
- 祝福华仔生日快乐
- 下面得语句为什么一运行,就死机。请高手指点
- 关于OleVariant类型的问题?(在线)
- 请问哪里有delphi6下载,急。
- 寻找wise高手,有关快捷方式和“找不到数据表”的问题
- 版主,拜托了,俺帮人家回答了问题,人家要另开贴给300分,那帖子是不是被您删除了?又不是倒分!300分啊~~~~,兄弟得分也不容易啊。兄弟
- 怎样在触发器里显示消息?用 raiserror('xx,10,10')为什么不显示?
- 如何打印某些PDF文件(安全性,打印=不允许)?
- 有没有ASCALL码控件
- 只剩62分 在数据库表中字段Time定义为varchar(20),值的形式yyyy—mm-dd 现在小弟想把他转变为整型 yyyymmdd 并赋值给整型变量i 怎么实现
- 请教:Delphi做Authorware调用的DLL,如何来做?
还要请高手帮我看看,哪里没做对?