我正在做一个项目,但我遇到了一个问题,即让表单始终像德尔福的任务管理器一样保持在顶部 我使用了这段代码,但没有工作
SetWindowPos(Form1.Handle, HWND_TOPMOST, 0,0,0,0, SWP_NOACTIVATE+SWP_NOMOVE+SWP_NOSIZE);
现代任务管理器使用内部私有Windows功能来保持最佳行为。系统不会向用户窗口提供此功能。任务管理器使用的功能根本无法使用。
相关问题:任务管理器是Windows 10的特殊类型的"始终在顶部"窗口吗?
只需在设计时使用对象检查器将表单的FormStyle
属性设置为fsStayOnTop
即可。
原始帖子中的代码可能适用于主窗体,但不适用于辅助窗体。 fsStayOnTop 只是辅助表单解决方案的一部分。下面是一个简单的解决方案,用于使辅助表单保持在顶部,而主表单被其他应用程序遮挡 - 无需诉诸显示模式或表单创建技巧。
将其放在"表单 B"OnCreate 事件中:
FormStyle:= fsStayOnTop;
但仅凭这一点并不能解决问题...
将应用程序事件拖到您的"表单 B"上
在应用程序事件 1的OnDeactivate事件中,添加以下内容:
设置前景窗口(手柄(;
当我的主表单正在处理站点外的数据时,我会关注一个小的状态窗口。效果很好!