1

我们有一个使用不可见窗口(窗体)进行 DDE 通信的 VB6 应用程序。

我们有一些客户报告说他们偶尔会在桌面上看到这个窗口。

我通过代码扫描了相关表单上的任何可见 = true 或显示,但没有。

这就是我们用它做的所有事情:

Load frmDDELink
frmDDELink.stuff = stuff

我们实际上并没有显式显示(或者也没有显式显示)。

什么可能导致隐藏窗口显示在用户桌面上以使其可见?

4

4 回答 4

2

尝试将表单的位置设置为屏幕外。

frmDDELink.ClientLeft      =   -100
frmDDELink.ClientTop       =   -100
于 2010-01-22T19:12:39.047 回答
1

客户端机器上的行为不端的应用程序可以做到这一点。FindWindow() 是一个出了名的不准确的 API 函数。最重要的是,所有 VB6 窗口都有相同的类名。雷霆什么的,iirc。它可能会找到您的窗口而不是预期的窗口,从而使错误的窗口可见。

于 2010-01-22T17:15:55.697 回答
0

我喜欢 Black Frog 设置屏幕外位置的简单提示,以及 nobugz 的可能解释。我还建议处理 Form_Activate 事件并再次将表单设置为不可见。

Private Sub Form_Activate()  
  'Log something for debugging purposes?'  
  Me.Visible = False  
End Sub  
于 2010-01-26T12:42:53.963 回答
0

尝试将边框设置为none,或者me.visible = false,并将属性设置为不在任务栏中显示。

于 2011-04-12T01:36:52.530 回答