如何判断窗口是否有输入焦点(20分)

  • 主题发起人 主题发起人 zqssoft
  • 开始时间 开始时间
Z

zqssoft

Unregistered / Unconfirmed
GUEST, unregistred user!
已知一个外部窗口的句柄,假设为句柄为32767,如何判断这个窗口是否有输入焦点,能进行文字输入?
 
[:)]各位大哥:已知一个外部窗口的句柄,假设为句柄为32767,如何判断这个窗口是否有输入焦点,能进行文字输入?
 
函数功能:该函数用于判断指定的窗口是否允许接受键盘或鼠标输入。

函数原型:BOOL IsWindowEnabled(HWND hWnd);

参数:

hWnd:被测试的窗口句柄。

返回值:若窗口允许接受键盘或鼠标输入,则返回非0值,若窗口不允许接受键盘或鼠标输入,则返回值为0。

备注:子窗口只有在被允许并且可见时才可接受输入。

速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;库文件:user32.lib。
 
好像上面的不行,因为当一个窗口用showmodal形式显示出来后,比如Form2.showmodal;
这时上面的函数会判断为不可输入,而Form2上明明有Edit1,Memo等控件,点击也有焦点.
可却判断为不可输入,显然这个函数不行的.会误判的.
 
1.用 Findwindow 获得目标窗口的句柄
2.用 GetWindow + 递归获得控件句柄
3.用 IsWindowEnabled 判断该控件是否可以输入
 
后退
顶部