如何判断一个窗体的状态为show

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何判断一个窗体的状态为show相关的知识,希望对你有一定的参考价值。

我的设计是,当一个窗体的状态为show时,另一窗体中的label的值会改变.或者说,当前窗体为form1时, form3中的label会显示"abcdef".这样的代码应该怎么写

BOOL IsWindowVisible(HWND hWnd);返回值:如果指定的窗口及其父窗口具有WS_VISIBLE风格,返回值为非零;如果指定的窗口及其父窗口不具有WS_VISIBLE风格,返回值为零。由于返回值表明了窗口是否具有Ws_VISIBLE风格,因此,即使该窗口被其他窗口遮盖,函数返回值也为非零。
BOOL IsIconic(HWND hWnd)参数: hWnd:被测试窗口的句柄。 返回值:如果窗口已图标化,返回值为非零;如果窗口未图标化,返回值为0
BOOL IsZoomed(HWND)返回值:如果窗口己最大化,则返回值为非零;如果窗口未最大化,则返回值为零。

结合这3个API,HWND都是你要找的窗口的句柄
参考技术A delphi版本保存的文件名 implementation
uses unit2,unit3; //衔接第二第三个窗体
$R *.dfmprocedure TForm1.Button1Click(Sender: TObject);
begin
form3.Label1.Caption:='abcdef'; //第三个窗体Label控件实现内容:abcdef
form2.Show; //打开第二窗体
form1.Hide; //隐藏第一窗体
end;
参考技术B Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPrivate Sub Command1_Click()
Form2.Show
End SubPrivate Sub Timer1_Timer()
h = FindWindow(vbNullString, "form2")
If h <> 0 Then
Label1.Caption = "abcdef"
End If
End Sub

以上是关于如何判断一个窗体的状态为show的主要内容,如果未能解决你的问题,请参考以下文章

winform中如何判断多久没有对窗体进行操作了?

判断窗体是否无响应(监控窗体)

C# WinForm中,如何判断窗口已打开

C++ Builder中如何让窗体一直显示最前,焦点不失去,就是点不了别的窗体,切换不了窗体,总处在被激活状态

c# winform中mdi子窗体激活问题

C# winform 关闭窗体后在打开 如何让打开的窗体还是原窗体 且打开的窗体还是原状态