python处理菜单消息

一 代码

import win32ui
import win32api
from win32con import *
from pywin.mfc import window
class MyWnd(window.Wnd):
    def __init__ (self):
        window.Wnd.__init__(self,win32ui.CreateWnd())
        self._obj_.CreateWindowEx(WS_EX_CLIENTEDGE,\
                                 win32ui.RegisterWndClass(0,0,COLOR_WINDOW+1),\
                                 'MFC GUI',WS_OVERLAPPEDWINDOW,\
                                 (10,10,800,500),None,0,None)
        submenu = win32ui.CreateMenu()
        menu = win32ui.CreateMenu()
        submenu.AppendMenu(MF_STRING,1051,'&Open')
        submenu.AppendMenu(MF_STRING,1052,'&Close')
        submenu.AppendMenu(MF_STRING,1053,'&Save')
        menu.AppendMenu(MF_STRING|MF_POPUP,submenu.GetHandle(),'&File')
        self._obj_.SetMenu(menu)
        self.HookCommand(self.MenuClick,1051)
        self.HookCommand(self.MenuClick,1052)
        self.HookCommand(self.MenuClick,1053)
    def OnClose(self):
        self.EndModalLoop(0)
    def MenuClick(self,lParam,wParam):
        if lParam == 1051:
            self.MessageBox('Open','Python',MB_OK)
        elif lParam == 1053:
            self.MessageBox('Sava','python',MB_OK)
        else:
            self.OnClose()
w = MyWnd()
w.ShowWindow()
w.UpdateWindow()
w.RunModalLoop(1)

 

二 运行结果

 

猜你喜欢

转载自cakin24.iteye.com/blog/2384111