3 Stimmen

Was ist der Unterschied zwischen den TrackPopupMenuEx- und TrackPopupMenu-Windows-APIs?

Ich habe über diese APIs auf dieser Webseite gelesen: http://www.ex-designz.net/apicat.asp?apicat=34

Ich habe die TrackPopupMenuEx- und TrackPopupMenu-APIs getestet und sie tun dasselbe: Sie zeigen ein Menü an der Position des Cursors an. Die Quellcodes sind gleich, man muss nur das "Ex" am Ende der Namen dieser APIs hinzufügen oder löschen. Warum zwei APIs für dieselbe Aktion?

Hinweis: TrackPopupMenu stürzt meine App zur Laufzeit ab, wenn es auf eine Bildsteuerung angewendet wird, während TrackPopupMenuEx funktioniert. TrackPopUpMenu scheint keinen Sinn zu ergeben.

0voto

Goz Punkte 59671

Sie sind ziemlich ähnliche Funktionen, aber der große Unterschied besteht darin, dass TrackPopupMenuEx es Ihnen ermöglicht, ein Rechteck anzugeben, über dem das Popup-Menü nicht erscheint (um eines zu haben, das nicht das verdeckt, was Sie sehen müssen). Das ist so ziemlich alles, was ich erkennen kann.

0voto

Eric Petroelje Punkte 58501

Laut der Dokumentation gibt es einige subtile Unterschiede:

  1. TrackPopupMenu hat einen nReserved Parameter
  2. TrackPopupMenuEx benötigt einen LPTPMPARAMS für den letzten Parameter, während TrackPopupMenu einen CONST RECT* verwendet (der ignoriert wird)

Sie haben also eine unterschiedliche Anzahl und Art von Parametern mit unterschiedlichen Bedeutungen - was erklären würde, warum Ihre App abstürzt, wenn Sie den Aufruf ändern.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X