日期:2014-05-20  浏览次数:20796 次

窗体A的FormBorderStyle=None时 按Ctrl+D隐藏所有窗口后,再激活其它窗口,窗体A为何会显示在桌面上
问题如是所示.
不知道有什么方法可用?
是不是应该处理WM_ACTIVATEAPP消息?
如果是又该如何捕获该消息?

------解决方案--------------------
你可以通过重载wndproc去处理,大致思路如下:
1、首先设置一个开关,来处理wndproc中获得系统消息;
2、在窗体隐藏之后开启开关进行处理WM_ACTIVATEAPP消息。

不过以上由细节需要你去捉摸,此外要区分窗体激活是主动激活还是被动激活。
------解决方案--------------------
呵呵,是有这个现象:)

当窗体无边框的时候和有边框确实是不样的.

其实还有很多其它的不一样的现象啊,
比如可以最大化到全屏,可以添加到一个其它的Control的Controls集合里,
这都是不一样.
------解决方案--------------------
topmost为true?
------解决方案--------------------
楼主真有意思,
我都说了是有这个现象,但这有什么关系呢?你想做到什么呢?
------解决方案--------------------
还以为是什么事呢

这种情况很正常啊,很多对话框都这样。

比如那个调显示器分辨率的窗口,一样的,Win+D,然后随便再点击另一个窗口,那个调显示器分辨率的窗口照样显示出来。