我们从Python开源项目中,提取了以下11个代码示例,用于说明如何使用win32con.MF_POPUP。
def CheckIDLEMenus(self, idle): if self.bSetMenus: return self.bSetMenus = 1 submenu = win32ui.CreatePopupMenu() newitems = idle.GetMenuItems("edit") flags=win32con.MF_STRING|win32con.MF_ENABLED for text, event in newitems: id = bindings.event_to_commands.get(event) if id is not None: keyname = pywin.scintilla.view.configManager.get_key_binding( event, ["editor"] ) if keyname is not None: text = text + "\t" + keyname submenu.AppendMenu(flags, id, text) mainMenu = self.GetSharedMenu() editMenu = mainMenu.GetSubMenu(1) editMenu.AppendMenu(win32con.MF_SEPARATOR, 0, "") editMenu.AppendMenu(win32con.MF_STRING | win32con.MF_POPUP | win32con.MF_ENABLED, submenu.GetHandle(), "&Source Code")
def _SetupMenu(self): menu = win32ui.CreateMenu() flags=win32con.MF_STRING|win32con.MF_ENABLED menu.AppendMenu(flags, win32ui.ID_FILE_OPEN, "&Open...") menu.AppendMenu(flags, win32con.IDCANCEL, "&Close") mainMenu = win32ui.CreateMenu() mainMenu.AppendMenu(flags|win32con.MF_POPUP, menu.GetHandle(), "&File") self.SetMenu(mainMenu) self.HookCommand(self.OnFileOpen,win32ui.ID_FILE_OPEN)
def OnRClick(self,params): menu = win32ui.CreatePopupMenu() self.AppendMenu(menu, "&Locate module", "LocateModule") self.AppendMenu(menu, flags=win32con.MF_SEPARATOR) self.AppendMenu(menu, "&Undo", "EditUndo") self.AppendMenu(menu, '&Redo', 'EditRedo') self.AppendMenu(menu, flags=win32con.MF_SEPARATOR) self.AppendMenu(menu, 'Cu&t', 'EditCut') self.AppendMenu(menu, '&Copy', 'EditCopy') self.AppendMenu(menu, '&Paste', 'EditPaste') self.AppendMenu(menu, flags=win32con.MF_SEPARATOR) self.AppendMenu(menu, '&Select all', 'EditSelectAll') self.AppendMenu(menu, 'View &Whitespace', 'ViewWhitespace', checked=self.SCIGetViewWS()) self.AppendMenu(menu, "&Fixed Font", "ViewFixedFont", checked = self._GetColorizer().bUseFixed) self.AppendMenu(menu, flags=win32con.MF_SEPARATOR) self.AppendMenu(menu, "&Goto line...", "GotoLine") submenu = win32ui.CreatePopupMenu() newitems = self.idle.GetMenuItems("edit") for text, event in newitems: self.AppendMenu(submenu, text, event) flags=win32con.MF_STRING|win32con.MF_ENABLED|win32con.MF_POPUP menu.AppendMenu(flags, submenu.GetHandle(), "&Source code") flags = win32con.TPM_LEFTALIGN|win32con.TPM_LEFTBUTTON|win32con.TPM_RIGHTBUTTON menu.TrackPopupMenu(params[5], flags, self) return 0
def getMenuInfo(hMenu, uIDItem): '''Get various info about a menu item. Arguments: hMenu The menu in which the item is to be found. uIDItem The item's index Returns: Menu item information object. This object is basically a 'bunch' (see http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52308). It will have useful attributes: name, itemCount, submenu, isChecked, isDisabled, isGreyed, and isSeperator Raises: WinGuiAutoError When the requested menu option isn't found. Usage example: submenuInfo = getMenuInfo(hMenu, submenu) hMenu, hMenuItemCount = submenuInfo.submenu, submenuInfo.itemCount''' # An object to hold the menu info class MenuInfo(Bunch): pass menuInfo = MenuInfo() # Menu state menuState = ctypes.windll.user32.GetMenuState(hMenu, uIDItem, win32con.MF_BYPOSITION) if menuState == -1: raise WinGuiAutoError("No such menu item, hMenu=" + str(hMenu) + " uIDItem=" + str(uIDItem)) menuInfo.isChecked = bool(menuState & win32con.MF_CHECKED) menuInfo.isDisabled = bool(menuState & win32con.MF_DISABLED) menuInfo.isGreyed = bool(menuState & win32con.MF_GRAYED) menuInfo.isSeperator = bool(menuState & win32con.MF_SEPARATOR) # ... there are more, but these are the ones I'm interested in # Menu name menuName = ctypes.c_buffer("\000" * 32) ctypes.windll.user32.GetMenuStringA(ctypes.c_int(hMenu), ctypes.c_int(uIDItem), menuName, ctypes.c_int(len(menuName)), win32con.MF_BYPOSITION) menuInfo.name = menuName.value # Sub menu info menuInfo.itemCount = menuState >> 8 if bool(menuState & win32con.MF_POPUP): menuInfo.submenu = ctypes.windll.user32.GetSubMenu(hMenu, uIDItem) else: menuInfo.submenu = None return menuInfo
def getMenuInfo(hMenu, uIDItem): #print "getMenuInfo fuction,hMenu,uIDItem",hMenu,uIDItem '''Get various info about a menu item. Arguments: hMenu The menu in which the item is to be found. uIDItem The item's index Returns: Menu item information object. This object is basically a 'bunch' (see http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/52308). It will have useful attributes: name, itemCount, submenu, isChecked, isDisabled, isGreyed, and isSeperator Raises: WinGuiAutoError When the requested menu option isn't found. Usage example: submenuInfo = getMenuInfo(hMenu, submenu) hMenu, hMenuItemCount = submenuInfo.submenu, submenuInfo.itemCount''' # An object to hold the menu info class MenuInfo(Bunch): pass menuInfo = MenuInfo() # Menu state menuState = ctypes.windll.user32.GetMenuState(hMenu, uIDItem, win32con.MF_BYPOSITION) #print "menuState_MF_BYPOSITION:",ctypes.windll.user32.GetMenuState(hMenu,uIDItem,win32con.MF_BYPOSITION) #print "menuState_MF_BYCOMMAND:",ctypes.windll.user32.GetMenuState(hMenu,uIDItem,win32con.MF_BYCOMMAND) if menuState == -1: raise WinGuiAutoError("No such menu item, hMenu=" + str(hMenu) + " uIDItem=" + str(uIDItem)) menuInfo.isChecked = bool(menuState & win32con.MF_CHECKED) menuInfo.isDisabled = bool(menuState & win32con.MF_DISABLED) menuInfo.isGreyed = bool(menuState & win32con.MF_GRAYED) menuInfo.isSeperator = bool(menuState & win32con.MF_SEPARATOR) # ... there are more, but these are the ones I'm interested in # Menu name menuName = ctypes.c_buffer("\000" * 32) ctypes.windll.user32.GetMenuStringA(ctypes.c_int(hMenu), ctypes.c_int(uIDItem), menuName, ctypes.c_int(len(menuName)), win32con.MF_BYPOSITION) menuInfo.name = menuName.value # Sub menu info menuInfo.itemCount = menuState >> 8 if bool(menuState & win32con.MF_POPUP): menuInfo.submenu = ctypes.windll.user32.GetSubMenu(hMenu, uIDItem) else: menuInfo.submenu = None #print "menuInfo",menuInfo return menuInfo