如何判断此时桌面上哪个窗口(程序)显示在最前方 本帖最后由 jinder 于 2009-08-29 18:27:14 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 貌似EnumWindows是按照Z轴顺序枚举窗口的 GetTopWindow 获取到的好像是创建窗口的顺序,不是此时的Z顺序,我用计时器+GetTopWindow(GetDesktopWindow())实验了一下效果不适合.GetForegroundWindow 获取的是此时具有焦点的窗口,不是符合所需要求,显示在最前方的不一定要具有焦点,就好比打开一个窗口后用鼠标点击一下桌面,此时该窗口会失去焦点,但仍显示在前方. 那个活动窗口应该在Z顺序的最上方:Private Declare Function GetActiveWindow Lib "user32" () As LongPrivate Sub Form_Load()Timer1.Interval = 1000End SubPrivate Sub Timer1_Timer()RE = GetActiveWindow()Debug.Print REEnd Sub 正在试验ing... vb创建DAT进程 如何从一个文本文件里逐行读入数据进行处理? 在VB中,在标签内显示的文字的问题! UserControl 怎么使用窗体外面的区域,像 ComboBox 那样,下拉选单可以拉到窗口之外。 怎样在数据库里随机抽出一条记录(accsee) hxy1982进来领分~!!谢谢你的控件~~! 请教:关于报表打印中换行的问题 有什么方法让一字符串型常量值赋值给一日期型变量 又是一个菜问题:如何限制vb中form地大小 请教线程和进程的区别 vb6 将数据以pdf格式导出?谁有这方面资料? 谁来帮我看看下面几句是干什么的
GetTopWindow
获取到的好像是创建窗口的顺序,不是此时的Z顺序,我用计时器+GetTopWindow(GetDesktopWindow())实验了一下效果不适合.GetForegroundWindow
获取的是此时具有焦点的窗口,不是符合所需要求,显示在最前方的不一定要具有焦点,就好比打开一个窗口后用鼠标点击一下桌面,此时该窗口会失去焦点,但仍显示在前方.
Private Declare Function GetActiveWindow Lib "user32" () As Long
Private Sub Form_Load()
Timer1.Interval = 1000
End SubPrivate Sub Timer1_Timer()
RE = GetActiveWindow()
Debug.Print RE
End Sub
正在试验ing...