【分享】强制 FoxPro 窗口始终保持在最前面
<p>下面的代码示例强制主 FoxPro 窗口保持在所有其他窗口的顶部。 它演示如何使用 FOXTOOLS.FLL 库命令来调用 SetWindowPos() Microsoft Windows 应用程序编程接口 (API) 函数。</p><p> </p>
<p>该程序首先声明一些编译时常量 (以提高可读性) 并加载 FOXTOOLS.FLL 库与 FoxPro 为 Windows 提供的。 它然后检索使用驻留在 FOXTOOLS.FLL 库中的一个函数调用 MainHWND(),主 FoxPro 窗口句柄。 它然后调用 SetWindowPos() 函数并将句柄传递给主 FoxPro 窗口和 HWND_TOPMOST 常量以确保该窗口始终保持在最前面。 </p>
<div class="kb_codebody">
<div class="kb_codecontent"><code><pre class="code"> *** Define compile-time constants
#DEFINE HWND_TOPMOST -1
#DEFINE HWND_NOTOPMOST -2
#DEFINE SWP_NOSIZE 1
#DEFINE SWP_NOMOVE 2
*** Load FoxTools library
SET LIBRARY TO SYS(2004)+"FOXTOOLS"
*** Register the Windows API function
setwin=RegFn("SetWindowPos","IIIIIII","I")
*** Obtain handle to main FoxPro window
handle=mainhwnd()
*** Call SetWindowPos() API function
=CallFn(setwin,handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE+SWP_NOSIZE)
*** Release the FoxTools library
SET LIBRARY TO
</pre></code></div></div>
<p>为了从主 FoxPro 窗口中删除"总在最前面"属性,上面的该程序可以修改以便使用 HWND_TOPMOST 作为第三个参数常量 HWND_NOTOPMOST 而不是在 CallFn() 行。 </p>
页:
[1]