感悟网 导航

vb活动窗口的问题 VB怎么让指定活动窗口失去焦点

作者&投稿:愈贴 (若有异议请与网页底部的电邮联系)
VB怎么获取当前活动窗口的坐标?~

'在窗体上画一个Timer控件,设置其Interval属性为100
'把代码复制到Form1的代码窗口中

'获得活动窗口句柄的API
Private Declare Function GetForegroundWindow Lib "user32" () As Long
'获得窗口区域结构的API
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, wndRect As RECT) As Long

Private Type RECT '自定义区域结构类型
x As Long
y As Long
Right As Long
Bottom As Long
End Type

Dim ActiveWindowRECT As RECT '用於保存活动窗口区域的结构
Dim ActiveWindowHwnd As Long '活动窗口的句柄

Private Sub Timer1_Timer()
ActiveWindowHwnd = GetForegroundWindow '获得活动窗口的句柄
GetWindowRect ActiveWindowHwnd, ActiveWindowRECT '获得活动窗口的区域并保存在 ActiveWindowRECT 变量中
'在窗口上输出信息
Me.Cls
Print "活动窗口的坐标是(" & ActiveWindowRECT.x & "," & ActiveWindowRECT.y & ")"
End Sub

Private Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
激活别的窗口

Activate、 Deactivate 事件

在对象变成活动窗口的时候就会发生 Activate 事件。而当对象不再是活动窗口时,则会发生 Deactivate 事件。

语法

Private Sub object_Activate()

Private Sub object_Deactivate()

object 代表一个对象表达式,其值为“应用于”列表中的对象。

说明

对象可使用代码中的 Show 方法变成活动的。

只有在对象是可见的时候才会发生 Activate 事件。除非使用 Show 方法,否则用 Load 加载的 UserForm是不可见的。

只有在应用程序中移动焦点时才会发生 Activate 及 Deactivate 事件。而将焦点移出或移动到另一个应用程序中的对象并不会触发此事件。

在卸载对象时,并不会发生 Deactivate 事件。

《VB怎么获取当前活动窗口的坐标?》
答:Private Type RECT '自定义区域结构类型 x As Long y As Long Right As Long Bottom As Long End Type Dim ActiveWindowRECT As RECT '用於保存活动窗口区域的结构 Dim ActiveWindowHwnd As Long '活动窗口的句柄 Private Sub Timer1_Timer()ActiveWindowHwnd = GetForegroundWindow '获得...

《VB中 保持自身窗口始终为活动状态;》
答:lostfocus,gotfocus事件都是VB内部触发,根本不能实现你的要求。我实现的方式是使用API==GETACTIVEWINDOWS,获得激活窗口的hwnd,如果不是自己这个vb窗体的句柄,就自动激活自己。当然还要使用定时器定时执行这个检查过程。

《VB设置活动窗口的输入法:例用vb控制记事本的输入法为英文,如果为中文就...》
答:我用Timer1设为200就是英文,你在控制记事本的时候,直接call Timer1_Timer里的程式 Option Explicit Private Declare Function GetKeyboardLayoutList Lib "user32" (ByVal nBuff As Long, _lpList As Long) As Long Private Declare Function GetKeyboardLayoutName Lib "user32" Alias "...

《VB查找当前活动窗口的代码》
答:第一个问题,在Combo1.Text = S前面加上一句Combo1.additem S;但是每次的time_timer时间中都会加一个s,解决办法是再加个判断,如果有重复的就不加了~~第二个问题,我调试的时候未发现问题,通过

《VB窗体位置问题》
答:最好的办法,是显示时将A窗体设为B窗体的子窗体,即将A窗体的显示代码写成:A.show ,B 其次,可以使用TImer先将B窗体放到顶端,再将A窗体放到顶端:采用VB自身的过程:B.Zorder:A.Zorder。采用API函数:SetWindowPos或BringWindowToTop

《VB变成环境的2个活动窗口》
答:这是Mdi(多文档窗体界面)窗体的效果。其中背景的那个窗体叫Mdi住窗体,其他的窗体为其Mdi字窗体 你建立几个窗体,Form1的Mdi属性,你找找,设置为MdiContainer,就是这种效果。具体最好搜一搜Mdi,多文档这种。

《在VB6中获得当前活动窗口的标题?》
答:Option Explicit Private Declare Function GetForegroundWindow Lib "user32" () As Long Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long Private Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" ...

《vb如何使状态栏显示当前活动窗口的名称》
答:在每个子窗体的Activate事件中加入以下代码即可(假定MDI主窗体为MDIForm1,状态栏是StatusBar1)Private Sub Form_Activate()MDIForm1.StatusBar1.Panels(1).Text = Me.Name '如果是显示窗体标题则改为:'MDIForm1.StatusBar1.Panels(1).Text = Me.Caption End Sub ...

《请问高手,用VB编程怎样去截取活动窗口?》
答:1,用VB截取DirectX窗口内容的程序,最好能够直截取窗口的内容,不要窗口标题栏VB.NET中利用 GDI 就可以截图,DX 也不例外。 先声明 Imports System.

《在vb中怎样实现截取当前活动窗体,并以图片(bmp)形式保存。求助大神了...》
答:Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)Dim Xg As Boolean Private Sub Command1_Click()GbBkEnd SubPrivate Sub Command2_Click()keybd_event 18, 0, 0, 0keybd_event vbKeySnap...

   

返回顶部
本页内容来自于网友发表,若有相关事宜请照下面的电邮联系
感悟网