好的。就在你认为你已经明白了一切的时候,你还没有。
我已经编写并测试了一个功能 appbar 类。当我使用一个简单的 Windows 窗体来扩展和测试该类时,它在 XP(SP 3、32 位)和 Windows 7(64 位)中都可以正常工作。其他窗口是可访问的,并且它们都适当地最大化。然而,当我使用我的“复杂”Windows 窗体(即它是一个应用程序)并从 appbar 类派生它时,桌面似乎将它“踢”了出来。我的意思是,最初一切都适当地调整大小,但随后桌面将自身调整回原来的大小。有时在将表单置于 appbar 模式后会很快发生这种情况,有时会在我单击表单外部时发生(例如打开浏览器),有时会在表单调用 MessageBox 时发生。我已将所有表单功能放在后台工作人员中,认为这可能是问题,但结果是一样的。我在下面发布了三张图片。第一个将应用程序显示为其初始 WinForm。第二个显示应用栏“正在运行”。最后一个显示应用栏没有“运行”。如果您在看到问题时遇到问题,请注意回收站。有任何想法吗?
编辑:我通过日志找到了这些调用。每次桌面调整为“正常”时,它们似乎都会触发。现在我正在尝试查看“简单”版本中是否存在类似的模式。
- msg=0x6 (WM_ACTIVATE) hwnd=0x1e03ea wparam=0x0 lparam=0x0 结果=0x0
- msg=0x1c (WM_ACTIVATEAPP) hwnd=0x1e03ea wparam=0x0 lparam=0x1a90 结果=0x0
- msg=0x1a (WM_WININICHANGE) hwnd=0x1e03ea wparam=0x2f lparam=0x9fe048 结果=0x0
- msg=0x1a (WM_WININICHANGE) hwnd=0x1e03ea wparam=0x18 lparam=0x9fe038 结果=0x0