VFP 如何设定当前窗口是活动窗口?(有时候窗口在最前,但焦点在桌面上)
VFP如何设定当前窗口是活动窗口?(有时候窗口在最前,但焦点在桌面上)自作了一个自动刷卡的程序,什么都是全自动的,但焦点有时会在后面,虽然显示的是当前的vfp主画面。
有什么办法 可以使当前画面一直是活动画面? 或者使用定时器,定时的设定vfp窗口为活动窗口?
# DEFINE SW_NORMAL 1 && 窗口状态:正常大小 # DEFINE SW_MAXIMIZE 3 && 窗口状态:最大化 DECLARE integer FindWindow IN WIN32API integer,string && 获取应用程序窗口句柄 DECLARE integer ShowWindow IN WIN32API integer,integer && 显示应用程序窗口 DECLARE integer IsZoomed IN WIN32API integer && 判断窗口是否最大化 DECLARE integer SetForegroundWindow IN WIN32API integer cTitle = '自动刷卡程序' && 应用程序标题 nHwnd = FindWindow(0,cTitle) && 获取窗口句柄 IF nHwnd > 0 && 应用程序已启动 SetForegroundWindow(nHwnd) IF IsZoomed(nHwnd) = 1 && 原窗口的状态是最大化 ShowWindow(nHwnd,SW_MAXIMIZE) && 激活原窗口,并保持最大化 ELSE ShowWindow(nHwnd,SW_NORMAL) && 原窗口是隐藏或最小化状态,则激活原窗口,并保持正常大小 ENDIF ENDIF若要完美实现楼主所要的功能,还要做如下设置:如果刷卡表单是顶层表单,直接设置表单的 AlwaysOnTop = .t.;如果表单不是顶层表单,设置 _Screen.AlwaysOnTop = .t.。这样设置后,即使单击其他窗口,也可以将焦点返回到刷卡程序窗口。