Python处理菜单消息操作示例【基于win32ui模块】

yipeiwu_com5年前Python基础

本文实例讲述了Python处理菜单消息操作。分享给大家供大家参考,具体如下:

一、代码

# -*- coding:utf-8 -*-
#! python3
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),\
                 'www.jb51.net - 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)

二、运行效果:

注:win32ui模块的安装可直接使用pip命令,如下:

pip install pypiwin32

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

相关文章

Python实现的购物车功能示例

Python实现的购物车功能示例

本文实例讲述了Python实现的购物车功能。分享给大家供大家参考,具体如下: 这里尝试用python实现简单的购物车程序。。。 基本要求: 用户输入工资,然后打印购物菜单 用户可以不断的...

对python字典过滤条件的实例详解

如下所示: d = { 'a': '0.0000', 'b': '1.2' } d_tmp = dict((key, value) for key, value in d...

Python学习笔记之if语句的使用示例

前言 条件语句在实际开发中我们已经使用过几次了,在这里我们需要再次隆重的来介绍一下它,下面话不多说了,来一起看看详细的介绍吧。 if语句 顾名思义,该语句为判断语句,先来一个简单的示例...

Python打印输出数组中全部元素

学习Python的人都知道数组是最常用的的数据类型,为了保证程序的正确性,需要调试程序。 因此,需要在程序中控制台中打印数组的全部元素,如果数组的容量较小,例如 只含有10个元素,采用p...

Python中规范定义命名空间的一些建议

API的设计是一个艺术活。往往需要其简单、易懂、整洁、不累赘。 很多时候,我们在底层封装一个方法给高层用,而其它的方法只是为了辅助这个方法的。 也就是说我们只需要暴露这个方法就行,不用关...