The context menu is just floating menu, so just grab the context menu event and show the menu. Since the button doesn't have the contextmenu you can grab directly the htmlelement (or the Element wrapper) and listen to the contextmenu event
example
contextMenu = new Ext.menu.Menu({ items: [{ text: 'Edit', iconCls: 'edit', hadler: edit }] }); Ext.getCmp('your-button').getEl().on('contextmenu', function(e) { e.preventDefault(); contextMenu.show(Ext.getCmp('your-button').getEl()); });