阿杰 发表于 2008-12-14 14:15:25

【分享】强制 FoxPro 窗口始终保持在最前面

<p>下面的代码示例强制主 FoxPro 窗口保持在所有其他窗口的顶部。 它演示如何使用 FOXTOOLS.FLL 库命令来调用 SetWindowPos() Microsoft Windows 应用程序编程接口 (API) 函数。</p>
<p>&nbsp;</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]
查看完整版本: 【分享】强制 FoxPro 窗口始终保持在最前面