首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

打开另一个程序后怎么激活原来的窗体

2012-02-17 
打开另一个程序后如何激活原来的窗体?我用下面的方法调用写字板程序后,结果原来窗体的TEXT控件失去了焦点。

打开另一个程序后如何激活原来的窗体?
我用下面的方法调用写字板程序后,结果原来窗体的TEXT控件失去了焦点。

Assembly code
DECLARE INTEGER ShellExecute IN shell32.DLL INTEGER HWND,STRING lpszOP,STRING lpszFile,STRING lpszParams,STRING lpszDir,INTEGER fsshowcmd   DECLARE INTEGER GetDesktopWindow IN win32api   HWND = GetDesktopWindow()   lpszOP = "open"   * 指定要打开的文件名 lpszFile ="ab.exe" lpszParams = ""  lpszDir = "Hand"  fsshowcmd =1 &&0表示隐藏,1正常方式、2最小化方式、3最大化方式。 LNRETURN = ShellExecute(HWND, lpszOP,lpszFile, lpszParams, lpszDir,fsshowcmd) 

怎么重新激活原来的窗体,让TEXT控件重新获取焦点?谢谢!!

[解决办法]
以前用VFP做过一个输入法程序,思路供参考:

1、用API函数SetCapture实现绑定原VFP窗口;

*声明
Declare Long SetCapture in "user32" Long hwnd
Declare Long FindWindow in "user32" String lpClassName, String lpWindowName
*调用(VFP 7.0以上版本,7.0以下版本需要配合API函数FindWindow获取当前VFP程序句柄)
SetCapture(thisform.hwnd) 

2、启动程序(调用写字程序);

*调用写字程序

3、完成后,用API函数ReleaseCapture释放原VFP窗口绑定状态。

*声明
Declare Long ReleaseCapture in "user32" Long
*调用
ReleaseCapture()

热点排行