【问题标题】:What's the difference between the TrackPopupMenuEx and TrackPopupMenu windows APIs?TrackPopupMenuEx 和 TrackPopupMenu windows API 有什么区别?
【发布时间】:2010-12-05 11:39:00
【问题描述】:

我在这个网页上读到了这些 API:http://www.ex-designz.net/apicat.asp?apicat=34

我测试了 TrackPopupMenuEx 和 TrackPopupMenu API,它们做同样的事情:在光标的位置显示一个菜单。源代码相同,您只需在这些 API 名称的末尾添加或删除“Ex”即可。 为什么有两个 API 用于同一个操作?

注意:当在图像控件上使用时,TrackPopupMenu 会在运行时使我的应用程序崩溃,而 TrackPopupMenuEx 工作正常。 TrackPopUpMenu 好像没有任何意义。

【问题讨论】:

    标签: vb6 windows-xp


    【解决方案1】:

    根据文档,有一些细微的差别:

    1. TrackPopupMenu 有一个 nReserved 参数
    2. TrackPopupMenuEx 采用 LPTPMPARAMS 作为最后一个参数,但 TrackPopupMenu 采用 CONST RECT*(被忽略)

    因此,它们具有不同数量和类型的不同含义的参数 - 这可以解释为什么您的应用在更改调用时崩溃。

    【讨论】:

      【解决方案2】:

      它们是非常相似的函数,但最大的区别在于 TrackPopupMenuEx 允许您指定一个不会出现弹出菜单的矩形(具有一个不会遮挡您需要查看的内容的矩形)。就我所见,仅此而已。

      【讨论】:

        猜你喜欢
        • 2010-10-27
        • 2012-03-18
        • 2015-12-08
        • 2017-12-05
        • 1970-01-01
        • 2017-03-04
        • 2014-10-05
        • 1970-01-01
        • 2020-05-28
        相关资源
        最近更新 更多