我在此网页中了解了这些API:http://www.ex-designz.net/apicat.asp?apicat=34
我测试了TrackPopupMenuEx和TrackPopupMenu API,它们具有相同的作用:在光标位置显示菜单。源代码是相同的,您只需要在这些API名称的末尾添加或删除“ Ex”即可。为什么要使用两个API进行相同的操作?
注意:当在图像控件上使用TrackPopupMenuEx时,TrackPopupMenu在运行时会使我的应用程序崩溃,而TrackPopupMenuEx可以正常运行。 TrackPopUpMenu似乎没有意义。
它们是非常相似的功能,但是最大的区别是TrackPopupMenuEx允许您指定一个不会出现弹出菜单的矩形(这样可以使弹出菜单不会遮挡您所要看到的内容)。就我所知,就这样。
根据文档,有一些细微的差异:
TrackPopupMenu
具有nReserved
参数TrackPopupMenuEx
的最后一个参数为LPTPMPARAMS
,但是TrackPopupMenu
的为CONST RECT*
(将被忽略)因此,它们具有不同数量和类型的参数,具有不同的含义-这将解释为什么更改呼叫后您的应用程序崩溃。