songzihui 发表于 2014-7-22 08:40:11

vb问题:如何判断一个窗体已开启?

我设计的是,如果此窗体已开启,则刷新它,如没开启,则不管它。

wojoo 发表于 2014-7-22 08:40:33

可以判断一个窗体的显示状态,最好使用API,这样,会有很丰富的选择和判断。

不知道你能不能看懂:

首先取得一个窗体的句柄(使用FindWindow),然后使用IsWindowVisible判断此窗体是否显示,还有一个IsIconic判断窗体是否已经最小化。

相关使用方法你简单查找一下就可以了,下面是三个函数的使用声明:
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function IsWindowVisible Lib "user32" (ByVal hwnd As Long) As Long

Private Declare Function IsIconic Lib "user32" Alias "IsIconic" (ByVal hwnd As Long) As Long

相关的使用示例:
Dim I As Long, J As Long, K As Long
I = FindWindow(vbNullString, "我的程序")
'I为0表示“我的程序”没有运行,否则它是程序的句柄
J = IsWindowVisible(I)
'J--如窗口可见则返回TRUE(非零)
K = IsIconic(I)
'判断窗口是否已最小化,非零表示成功,零表示失败

846530637 发表于 2014-7-22 12:41:04

:victory:支持你呦
页: [1]
查看完整版本: vb问题:如何判断一个窗体已开启?