转载注明出处
http://blog.csdn.net/xugangjava/article/details/7478139
使用windows api
workarea = win32api.GetMonitorInfo(1)['Work']
pos=(workarea[2]-280,workarea[3]-180)
这两句 来得到 屏幕右下角的坐标
AnimateWindow来执行 弹出动作
下面是源代码
# -*- coding: gbk -*-
#!/bin/env python
# Author: 许刚
# Created: 2012/1/1
import wx,os,win32api
from res import *
from common import RoleStr,GetIconByFileExt,FileExt
from win32con import AW_ACTIVATE, AW_BLEND, AW_CENTER, AW_HIDE, AW_HOR_NEGATIVE, \
AW_HOR_POSITIVE, AW_SLIDE, AW_VER_NEGATIVE, AW_VER_POSITIVE,SPI_GETWORKAREA
import win32api
from ctypes import windll, c_int
########################################################################
class Popup(wx.MiniFrame):
def __init__(self, label, parent=None,title=""):
wx.MiniFrame.__init__(self, parent, -1, title, wx.DefaultPosition,size=(280,180),style=wx.DEFAULT_FRAME_STYLE| wx.STAY_ON_TOP)
workarea = win32api.GetMonitorInfo(1)['Work']
pos=(workarea[2]-280,workarea[3]-180)
bg=wx.Colour(255, 255, 225)
self.SetBackgroundColour(bg)
self.SetPosition(pos)
text = wx.StaticText(self, -1, label)
#font = wx.Font(13, wx.FONTENCODING_SYSTEM, wx.NORMAL, wx.NORMAL)
#text.SetFont(font)
text.SetBackgroundColour(bg)
flags = AW_SLIDE | AW_VER_NEGATIVE | AW_ACTIVATE
windll.user32.AnimateWindow(c_int(self.GetHandle()), c_int(600), c_int(flags))
self.Refresh()
self.Bind(wx.EVT_CLOSE,self.RemovePopup)
def RemovePopup(self, evt=None):
flags = AW_BLEND | AW_HIDE
windll.user32.AnimateWindow(c_int(self.GetHandle()), c_int(600), c_int(flags))
self.Destroy()
########################################################################
if __name__=='__main__':
app=wx.PySimpleApp()
f=Popup('测试右下角弹出框\n测试右下角弹出框\n\n')
f.Show()
app.MainLoop()
最后运行效果