In addition to the other ideas, you could also call up the object hierarchy, until you hit the form's RightClick() - in the superclass form RightClick(), call your generic shortcut menu.
That way if you want a special menu on a particular form, it can be called from any object on the form. And if you want to override a particular control, you just put code in it's RightClick()
You'll have to put the code in all your superclasses except forms but it may be worth it.
note: This example ignores columns and pages
LOCAL loParentObj
loParentObj = this.Parent
IF INLIST(UPPER(loParentObj.BaseClass),"COLUMN","PAGE")
loParentObj = loParentObj.Parent
ENDIF
IF PEMSTATUS(loParentObj,"RightClick",5)
loParentObj.RightClick()
ENDIF
DO mainshortcut.mpr
Insanity: Doing the same thing over and over and expecting different results.