谢谢你这么快答复!!我试过用DestopWindow的hWnd, 没用, 我可以再试试。 另外TrackPopupMenu本身还是有点问题的,可以算上是 小bug吧. 比如说弹出后立即消失或者在点击了menu以外 的地方它也不自动消失。 你遇到过吗? 这两个问题我虽然解决了但我还想知道更多的解决这些 问题的方法。 另外我刚在msdn里查到了这样的话 "Only one popup menu can be tracked in the system at any given time." 问题是经常在windows里见到两个menu一起显示的情况。 也许应该在不同的进程里调用TrackPopupMenu吧 TPM_RECURSE.. 我把MSDN里这段话摘给你 TrackPopupMenuWindows 98, Windows NT 5.0 and later: Use the TPM_RECURSE flag to display a menu when another menu is already displayed. This is intended to support context menus within a menu.
另外TrackPopupMenu本身还是有点问题的,可以算上是
小bug吧. 比如说弹出后立即消失或者在点击了menu以外
的地方它也不自动消失。 你遇到过吗?
这两个问题我虽然解决了但我还想知道更多的解决这些
问题的方法。
另外我刚在msdn里查到了这样的话
"Only one popup menu can be tracked in the system at any given time."
问题是经常在windows里见到两个menu一起显示的情况。
也许应该在不同的进程里调用TrackPopupMenu吧
TPM_RECURSE.. 我把MSDN里这段话摘给你
TrackPopupMenuWindows 98, Windows NT 5.0 and later: Use the TPM_RECURSE flag to display a menu when another menu is already displayed. This is intended to support context menus within a menu.
SetForegroundWindows();