vb通过findwindow获得窗口句柄后怎样判断该窗口是否为活动窗口(具有焦点)

vb通过findwindow获得窗口句柄后怎样判断该窗口是否为活动窗口(具有焦点),第1张

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function GetForegroundWindow Lib "user32" () As Long

'可以通过查看前景窗口是否为指定窗口判断

hwd1 = FindWindow("#32770", "QQ用户登录")

'获得指定窗口句柄

hwd2 = GetForegroundWindow

'获得前景窗口句柄

If hwd1 = hwd2 Then MsgBox "指定窗口为活动状态!"

'判断是否相同

'可以通过ModifyMenu修改系统菜单来禁止移动,但并不适用所有窗体,有的窗体不具有系统菜单(BorderStyle=0)

'但通过子类化仍可以实现系统菜单具有的功能,新建窗体,添加command1,复制粘贴下段代码

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long

Private Declare Function ModifyMenu Lib "user32" Alias "ModifyMenuA" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal wIDNewItem As Long, ByVal lpString As Any) As Long

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const SC_MOVE = &HF010&

Private Const MF_BYCOMMAND = &H0&

Private Const MF_ENABLED = &H0&

Private Const MF_GRAYED = &H1&

Private Sub Command1_Click()

hwind = FindWindow("#32770", "QQ用户登录")

'获取窗体句柄

hMenu = GetSystemMenu(hwind, False)

'获取该窗体系统菜单句柄

ModifyMenu hMenu, SC_MOVE, MF_BYCOMMAND Or MF_GRAYED, -10, "禁止移动"

'设置移动菜单项不可用,并指定新ID为小于0的-10以防止系统重新加载该菜单,新标题为“禁止移动”,成功返回非0,失败0

'ModifyMenu hMenu, -10, MF_BYCOMMAND + MF_ENABLED, SC_MOVE, "移动(&M)" '恢复移动菜单

SendMessage hwind, WM_NCACTIVATE, True, 0

'发送WM_NCACTIVE消息到指定窗体刷新非客户区(标题栏)

End Sub

这个问题问的很有勇气

Private Sub Form_Paint()

Form1WindowState = 2

End Sub

就是说再绘制窗体的时候,使窗体最大化。

WindowState属性的0标示还原,1标示最小化,2标示最大化

也可以在属性窗口中去该好WindowState属性,就不用动态的用WindowState属性修改窗体属性了

Form常用属性

(1)Name属性:用来获取或设置窗体的名称。

(2)WindowState属性:用来获取或设置窗体的窗口状态。

(3)StartPosition属性:用来获取或设置运行时窗体的起始位置。

(4)Text属性:该属性是一个字符串属性,用来设置或返回在窗口标题栏中显示的文字。

(5)Width属性:用来获取或设置窗体的宽度。

(6)Heigth属性:用来获取或设置窗体的高度。

(7)Left属性:用来获取或设置窗体的左边缘的

x

坐标(以像素为单位)。

(8)Top属性:用来获取或设置窗体的上边缘的

y

坐标(以像素为单位)。

(9)ControlBox属性:用来获取或设置一个值,该值指示在该窗体的标题栏中是否显示控制框。

(10)MaximumBox属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最大化按钮。

(11)MinimizeBox属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最小化按钮。

(12)AcceptButton属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当用户按

ENTER

键时就相当于单击了窗体上的该按钮。

(13)CancelButton属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当用户按ESC键时就相当于单击了窗体上的该按钮。

(14)Modal属性:该属性用来设置窗体是否为有模式显示窗体。

(15)ActiveControl属性:用来获取或设置容器控件中的活动控件。

(16)ActiveMdiChild属性:用来获取多文档界面(MDI)的当前活动子窗口。

(17)AutoScroll属性:用来获取或设置一个值,该值指示窗体是否实现自动滚动。

(18)BackColor属性:用来获取或设置窗体的背景色。

(19)BackgroundImage属性:用来获取或设置窗体的背景图像。

(20)Enabled属性:用来获取或设置一个值,该值指示控件是否可以对用户交互作出响应。

(21)Font属性:用来获取或设置控件显示的文本的字体。

(22)ForeColor属性:用来获取或设置控件的前景色。

(23)IsMdiChild属性:获取一个值,该值指示该窗体是否为多文档界面

(MDI)

子窗体。

(24)IsMdiContainer属性:获取或设置一个值,该值指示窗体是否为多文档界面

(MDI)

中的子窗体的容器。

(25)KeyPreview属性:该属性用来获取或设置一个值,该值指示在将按键事件传递到具有焦点的控件前,窗体是否将接收该事件。

(26)MdiChildren属性:数组属性。

(27)MdiParent属性:该属性用来获取或设置此窗体的当前多文档界面

(MDI)

父窗体。

(28)ShowInTaskbar属性:该属性用来获取或设置一个值,该值指示是否在

Windows

任务栏中显示窗体。

(29)Visible属性:该属性获取或设置一个值,该值指示是否显示该窗体或控件。

(30)Capture属性:如果该属性值为true,则鼠标就会被限定只由此控件响应,不管鼠标是否在此控件的范围内。

javaawtFrame类有一个方法setExtendedState()可以 *** 纵窗口最小化,最大化,还原窗口3种状态:

最小化:setExtendedState(JFrameNORMAL)

最大化:setExtendedState(JFrameMAXIMIZED_BOTH)

还原:setExtendedState(JFrameNORMAL)

还有一个方法getExtendedState()可以获得窗口的状态。

JFrame类是Frame的子类,完全可以运用上述的方法。

比如:把处于最小化状态的窗口还原为原来大小:

if (jFramegetExtendedState() == JFrameICONIFIED) {

jFramesetExtendedState(JFrameNORMAL);

}

在发送信息的 richtextbox 里面的内容存到数据库,然后调用数据库里面的信息以后把这些信息些在上面就可以了。

richtextboxtext=richtextboxtext+"select informatin from chat where fromid ='{0}' and toid='{1}'" 这样就实现了聊天的交互了

你这里要记住,要使用time空间,调用他的 tick事件来每隔 1000 就去select一次数据库,看看有没有状态为0 的聊天数据, 有就把他 读取出来,并且updata一下他的状态为1

把窗体本身或者控件传入这个类(或者做为参数传给这个类的方法),看你的需要了,比如说你在form1里创建的这个类叫myclass,把这个mycalss的构造方法改成

public class myclass

{

form1 frm;

public myclass(form1 frm)

{

thisfrm=frm;

}

}

这样你在form1中创建这个myclass的时候就可以是

myclass mc=new myclass(this);

当然也可以直接传窗体或者控件给类中的方法,比如mycalss中有

public void msg(EditText txt)

或者

public void msg(form1 frm)

其它方法也很多,看你需要了。

form的属性有:

(1)Name属性:用来获取或设置窗体的名称。

(2)WindowState属性:用来获取或设置窗体的窗口状态。

(3)StartPosition属性:用来获取或设置运行时窗体的起始位置。

(4)Text属性:该属性是一个字符串属性,用来设置或返回在窗口标题栏中显示的文字。

(5)Width属性:用来获取或设置窗体的宽度。

(6)Heigth属性:用来获取或设置窗体的高度。

(7)Left属性:用来获取或设置窗体的左边缘的x坐标(以像素为单位)。

(8)Top属性:用来获取或设置窗体的上边缘的y坐标(以像素为单位)。

(9)ControlBox属性:用来获取或设置一个值,该值指示在该窗体的标题栏中是否显示控制框。

(10)MaximumBox属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最大化按钮。

(11)MinimizeBox属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最小化按钮。

(12)AcceptButton属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当用户按ENTER键时就相当于单击了窗体上的该按钮。

(13)CancelButton属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当用户按ESC键时就相当于单击了窗体上的该按钮。

以上就是关于vb通过findwindow获得窗口句柄后怎样判断该窗口是否为活动窗口(具有焦点)全部的内容,包括:vb通过findwindow获得窗口句柄后怎样判断该窗口是否为活动窗口(具有焦点)、vb中如何表示窗体的状态(最大化、最小化、还原三种状态)、C#中 Windows窗口常用的基本属性有哪些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10093857.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存