2012-01-21 35 views
1

我有一个C#Windows窗体程序,在Windows 7中,但我认为它适用于任何Windows程序。当任务栏/开始菜单结束时,窗口消息发送到我最上面的窗体/窗口?

我的程序的主要形式覆盖整个屏幕,并具有最高层属性集。但是,例如,当我单击“开始”键打开“开始”菜单时,将显示任务栏和“开始”菜单,位于“始终在最前面”窗体的顶部。

当发生这种情况时,是否有窗口消息(WM_)发送到窗体/窗口,并且我的窗体/窗口不再是最顶层窗口(或者在Z顺序之上)?我想用WndProc来捕捉它。

谢谢

+0

当你获得信息时你打算做什么?你想停止任务栏和开始菜单显示,或者你只需​​要知道? –

+0

我想使用BringToFront将我的窗口放在前面。我现在这样做的方式是每100毫秒使用一个Timer来调用BringToFront,但是我恐怕会浪费资源并且可能会减慢计算机速度。 – AnAurelian

+0

这不会让用户无法使用开始菜单吗?它必须看起来很可怕,任务栏和开始菜单弹入视图然后被隐藏。这一切的目的是什么? –

回答

2

,我认为这是明智的消费雷蒙德陈他的blog post,虽然感觉只是一个有趣的故事,把它非常,非常严重。

名言:“当两个节目‘一决高下’这样,你无法预测哪一个会胜出,但你可以用100%的把握谁就会失去预测:用户”

+0

感谢您分享此博客文章,这是伟大的阅读。我会尽量铭记这些建议。 – AnAurelian

1

由于rene在上面的帖子中说过,如果超过1个应用程序要使用相同的逻辑,它将成为竞争条件,但如果你仍然想要这样做,我认为看看Form.Deactivated将是一个好的开始。

相关问题