`
wsql
  • 浏览: 11785923 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Delphi 窗口置顶的方法

 
阅读更多

有几种窗口置顶的方法,简单的有:

ShowWindow(窗口句柄,sw_ShowNormal);

SetWindowPos(窗口句柄,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOV OR SWP_NOSIZE OR SWP_SHOWWINDOW);

另一种方式是:

function ForceForegroundWindow(hwnd: THandle): boolean;
const
SPI_GETFOREGROUNDLOCKTIMEOUT = $2000;
SPI_SETFOREGROUNDLOCKTIMEOUT = $2001;
var
ForegroundThreadID: DWORD;
ThisThreadID : DWORD;
timeout : DWORD;
begin
if IsIconic(hwnd) then ShowWindow(hwnd, SW_RESTORE);

// Windows 98/2000 doesn't want to foreground a window when some other
// window has keyboard focus

if ((Win32Platform = VER_PLATFORM_WIN32_NT) and (Win32MajorVersion > 4))
or
((Win32Platform = VER_PLATFORM_WIN32_WINDOWS) and
((Win32MajorVersion > 4) or ((Win32MajorVersion = 4) and
(Win32MinorVersion > 0)))) then begin
// Code from Karl E. Peterson,www.mvps.org/vb/sample.htm
// Converted to Delphi by Ray Lischner
// Published in The Delphi Magazine 55, page 16

Result := false;
ForegroundThreadID := GetWindowThreadProcessID(GetForegroundWindow,nil);
ThisThreadID := GetWindowThreadPRocessId(hwnd,nil);
if AttachThreadInput(ThisThreadID, ForegroundThreadID, true) then begin
BringWindowToTop(hwnd); // IE 5.5 related hack
SetForegroundWindow(hwnd);
AttachThreadInput(ThisThreadID, ForegroundThreadID, false);
Result := (GetForegroundWindow = hwnd);
end;

if not Result then begin
// Code by Daniel P. Stasinski
SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, @timeout, 0);
SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, TObject(0), SPIF_SENDCHANGE);
BringWindowToTop(hwnd); // IE 5.5 related hack
SetForegroundWindow(hWnd);
SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, TObject(timeout), SPIF_SENDCHANGE);
end;
end
else begin
BringWindowToTop(hwnd); // IE 5.5 related hack
SetForegroundWindow(hwnd);
end;

Result := (GetForegroundWindow = hwnd);
end;

另外,主窗体有个置顶的属性FormStyle, 设置为fsStayOnTop就可以直接置顶了。

分享到:
评论

相关推荐

    Delphi窗口置顶实例、窗体透明,禁止使用最大化按钮和最小化按钮的编程实例.rar

    Delphi窗口置顶实例、窗体透明,禁止使用最大化按钮和最小化按钮的编程实例

    Delphi窗口置顶(始终显示在最上层)实例..rar

    Delphi窗口置顶(始终显示在最上层)实例..rar

    Delphi窗口置顶 透明 禁止最大化、最小化编程实例..rar

    Delphi窗口置顶 透明 禁止最大化、最小化编程实例..rar`

    Delphi实现窗口最顶层显示.rar

    也就是窗口置顶、显示在最前面,不被其它的窗口遮挡,现在新版的暴风影音播放器有这种功能,在播放视频的时候,为了不被其它的窗体所遮挡,可设置播放窗口显示在最顶层,这个功能实用吧,在Delphi中,本源码将演示...

    Delphi窗口置顶 透明 禁止最大化、最小化编程实例

    Delphi窗口置顶实例、窗体透明,禁止使用最大化按钮和最小化按钮的编程实例,打开编译的程序后,你会发现程序的窗体是半透明状态,而且可以始终显示在最顶层,不会被遮挡,通过窗口中的几个控制按钮,还可以实现最小...

    Delphi置顶窗口,显示在上层(顶层)的窗口

    Delphi设置置顶窗口,把程序窗口显示在其它窗口的最上层(顶层),以前多见于一些影视播放器中,在播放视频时,为了不被其它窗口遮挡,都会把... Delphi窗口置顶(始终显示在最上层)实例 运行环境:Windows/Delphi7

    窗口置顶助手Delphi版

    窗口置顶助手可以把某个窗口置顶,对着置顶窗口查看信息或在置顶窗口记笔记,可提高工作效率。类似于Spy++的查找窗口的功能,本程序增加在找到窗口后,可以把该窗口置为顶层窗口。开发语言:Delphi10.2.3,适用于...

    Delphi置顶窗口,显示在上层(顶层)的窗口..rar

    Delphi置顶窗口,显示在上层(顶层)的窗口..rar`

    Delphi窗口快速通道-标题栏显示按钮.rar

    Delphi窗口快速通道-标题栏显示按钮,很久以前的东西了,具体细节不太记得了,自己看代码,这里只给一些简单的说明。程序启动hook,获取当前激活窗口和窗口的移动事件。将自己的窗口位置/大小设置为当前激活窗口的...

    Delphi GDI+实现半透明异型窗口(使用PNG图片)

    我觉得这个窗体的样子很不错,窗体支持右键菜单,还可以设置窗口置顶和更换PNG图片,原来使用GDI+技术,用PNG就能实现这么漂亮、个性的半透明窗体,也让我对Delphi产生了信心,作者和时间:2008 赵述杰。 运行环境...

    Delphi 各种例子集合

    1.API 文件拖放获取路径 ...5.窗口置顶 透明 禁止最大化、最小化 6.获取硬盘序列号源码 7.如何调用外部的EXE文件 8.使用多线程开发程序 9.仿QQ主窗体自动吸附及隐藏 等等 ..........................

    Delphi 使窗体始终在最前面.rar

    Delphi 使窗体始终在最前面,不几行代码实现的置顶窗口,大家对这种窗口相信都不会太陌生,不被其它的窗口遮挡,显示在最前面,典型的应用像一些视频播放器的播放窗口,在播放视频时可设置显示在最顶端,你可以边...

    Delphi做的Win7放大镜,实现和Win7放大镜一样的实时全屏放大

    用Magnification API做的...2、Magnification窗口置顶功能没有Win7自带的强悍,也比ZoomIn软件效果稍差,刚开始弹出时动态缩放会有闪烁,这个ZoomIn没有,不知道怎么弄的,然后正常放大会和ZoomIn一样正常,很少闪烁。

    Delphi 限制打开多个程序源码实例

    内容索引:Delphi源码,系统相关,窗口置顶 Delphi限制打开多个程序,有些功能像是在搞恶做剧,呵呵。  获取窗口的Caption,如果窗口的Caption含某字符串,如果已被最小化,则把它恢复,如果窗口被其他窗口遮住,则将...

    简易屏幕保护程序

    用delphi开发的一个简易的屏幕保护程序,窗口置顶,点我解锁等功能

    CnWizards v0.7.3.79 (IDE专家包)

    * 窗口置顶折叠专家增加折叠状态的保存与恢复功能。* 窗体列表增加显示标题功能及其它改进。* 代码输入助手增加关闭空格键输出和自动调整优先级的设置。* 组件面板多行切换时增加代码编辑器和属性编辑器等自动适应...

    CnPack IDE 专家包 v0.7.1.23 Build 2004.12.11

    + 新增窗口置顶及折叠专家。+ 新增使用 CnMemProf 的 Repository 专家。+ 代码编辑器扩展增加行号显示及书签操作功能。+ 代码编辑器扩展增加系统单元打开时自动只读保护功能。+ 代码编辑器扩展增加工具栏功能。+ ...

Global site tag (gtag.js) - Google Analytics