为提醒用户注意,通常采用窗口闪烁的效果来达到这一目的,就像即时聊天工具QQ, Jabber等,当收到好友发来的消息时通常会闪烁托盘中的图标,如果聊天窗口是打开的,那么就会闪烁打开的聊天窗口在任务栏中的按钮,甚至有时连窗口的标题栏都会闪烁。

其实实现这样的闪烁功能是很简单的,如果对windows api熟悉的话,就会对FlashWindow函数不会陌生,该函数可以实现简单的窗口闪烁功能,只是窗口只闪烁一下,函数声明如下:

[c++]

BOOL WINAPI FlashWindow(

_In_  HWND hWnd,

_In_  BOOL bInvert

);

BOOL WINAPI FlashWindow(

_In_  HWND hWnd,

_In_  BOOL bInvert

); 如果要定义窗口闪烁的次数和频率可以使用另一个函数FlashWindowEx,声明如下:

[c++]

BOOL WINAPI FlashWindowEx(

_In_  PFLASHWINFO pfwi

);

BOOL WINAPI FlashWindowEx(

_In_  PFLASHWINFO pfwi

);该函数接收一个结构体参数PFLASHWINFO,结构体的声明如下:

[c++]

typedef struct {

UINT  cbSize;

HWND  hwnd;

DWORD dwFlags;

UINT  uCount;

DWORD dwTimeout;

} FLASHWINFO, *PFLASHWINFO;

typedef struct {

UINT  cbSize;

HWND  hwnd;

DWORD dwFlags;

UINT  uCount;

DWORD dwTimeout;

} FLASHWINFO, *PFLASHWINFO;主要的参数是dwFlags,该参数有多个组合,分别为:

FLASHW_ALL(0x00000003):同时闪烁窗口标题栏和任务栏按钮,等于FLASHW_CAPTION | FLASHW_TRAY;

FLASHW_CAPTION(0x00000001):闪烁窗口标题栏;

FLASHW_STOP(0):停止闪烁,系统重置窗口到初始状态

FLASHW_TIMER(0x00000004):不停的闪烁,知道FLASHW_TOP标记被设置

FLASHW_TIMERNOFG(0x0000000C):不停闪烁,直到窗口前端显示

FLASHW_TRAY(0x00000002):闪烁窗口在任务栏的按钮;

参数uCount表示闪烁的次数,当然如果dwFlags的值有FLASHW_TIMER或FLASHW_STOP时,该参数就无效了。dwTimeout是闪烁频率(毫秒)。

这里使用Python+wxPython编写如何使用函数FlashWindowEx来实现窗口的闪烁效果。代码如下:

[python]

# -*- coding:utf-8 -*-

'''''

filename : winapi.py

'''

from ctypes import *

import win32con

__all__ = ['flash']

FlashWindowEx = windll.user32.FlashWindowEx

class FLASHWINFO(Structure):

_fields_ = [('cbSize', c_uint),

('hwnd', c_uint),

('dwFlags', c_uint),

('uCount', c_uint),

('dwTimeout', c_uint)]

def flash(hwnd):

'''''Flash a window with caption and tray.'''

info = FLASHWINFO(0, hwnd, win32con.FLASHW_ALL | win32con.FLASHW_TIMERNOFG, 0, 0)

info.cbSize = sizeof(info)

FlashWindowEx(byref(info))

# -*- coding:utf-8 -*-

'''

filename : winapi.py

'''

from ctypes import *

import win32con

__all__ = ['flash']

FlashWindowEx = windll.user32.FlashWindowEx

class FLASHWINFO(Structure):

_fields_ = [('cbSize', c_uint),

('hwnd', c_uint),

('dwFlags', c_uint),

('uCount', c_uint),

('dwTimeout', c_uint)]

def flash(hwnd):

'''Flash a window with caption and tray.'''

info = FLASHWINFO(0, hwnd, win32con.FLASHW_ALL | win32con.FLASHW_TIMERNOFG, 0, 0)

info.cbSize = sizeof(info)

FlashWindowEx(byref(info))使用方法,在wx.Frame窗口中调用该函数:

[python]

import winapi

winapi.flash(self.GetHandle())

import winapi

winapi.flash(self.GetHandle()) 函数flash就是实现了闪烁窗口标题栏和任务栏按钮,直到窗口被激活,闪烁才停止。

wxpython使窗口重新显示出来_wxPython实现窗口在任务栏中闪烁相关推荐

  1. wxpython使窗口重新显示_wxpython刷新窗口按按钮

    我的Python程序有点问题.基本上,它是一个非常简单的文件管理器.在 我一直试图让它在文件夹之间移动(用户单击一个文件夹,程序刷新显示并显示文件夹的内容).在 我遇到的问题是,我似乎不能让按钮刷新显 ...

  2. python如何切换windows窗口_python – Windows 7:如何把窗口带到前面,无论其他窗口有什么重点?...

    我正在执行一个任务栏替换,类似Dock的应用程序切换程序样式程序.它使用OpenGL做了一些独特的东西,并且使用键盘快捷键,因此它的设置方式,窗口并不总是有焦点.我想实现它,以便我可以将任意窗口带到前 ...

  3. wxpython使窗口重新显示_wxPython 窗口

    创建窗口 wx.Frame.__init__(parent, id, title, pos, size, style, name) parent : 父窗口,顶级窗口值:None,多文档界面的情况下, ...

  4. 如何使对话框程序启动以及主窗口最小化时不在任务栏上显示

    时下流行的许多软件,如QQ,迅雷等,启动主程序以及主窗口最小化时,不在任务栏上显示按钮,这是怎么做到的呢? 首先说主窗口启动时不再任务栏上显示按钮的问题 方法1,将主窗口的属性设置为WS_EX_TOO ...

  5. Android窗口管理服务WindowManagerService计算窗口Z轴位置的过程分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/8570428 通过前面几篇文章的学习,我们知道了 ...

  6. python 关闭窗口事件_关于python:如何在Tkinter中处理窗口关闭事件?

    如何在Python Tkinter程序中处理窗口关闭事件(用户单击" X"按钮)? Tkinter支持一种称为协议处理程序的机制.在这里,术语协议是指应用程序和窗口管理器之间的交互 ...

  7. pyqt5子窗口跳出主窗口_弹出式窗口与 可用性,转换和跳出率

    pyqt5子窗口跳出主窗口 Written by Cassandra Naji 由卡珊德拉·纳吉 ( Cassandra Naji)撰写 They go by many names - modal w ...

  8. 更改窗口图标并将其显示在任务栏

    以下两个函数可以为应用程序中的各子窗口显示一个任务条到任务栏并更改它们的图标.对那些象QQ一样隐藏主窗口的应用程序特别有用. //函数用途:更改一个窗口的图标并将其显示在任务栏.任务切换条.任务管理器 ...

  9. 提交模式窗口后,刷新父窗口数据+获取frameset中各模块中数据

    转自:http://www.iteye.com/topic/724864 一.提交模式窗口后,刷新父窗口数据 有些时间,按需求设计,一个窗口中,点击按扭,弹出模式窗口,在模式窗口中,添加完数据后(提交 ...

最新文章

  1. Shell tips
  2. 公有云厂商DDoS防护产品竞品分析——内含CC的一些简单分析,貌似多是基于规则,CC策略细粒度ip/url//ua/refer...
  3. GWT interface的使用例子
  4. poi excel文档生成与读取
  5. 怎么判断冠词用a还是an_【语法微课堂】英语冠词的用法,学会这4点,轻松玩转a、an、the...
  6. Makeflie自动生成依赖,自动化编译
  7. CAD1:1导出图纸的步骤
  8. 测试工程师的项目经验怎么写?
  9. 阿里云服务器上的数据是如何确保安全的
  10. 计划招收300人,复旦大学计算机学院2022年夏令营来袭
  11. 计算机视觉 图像处理_通过图像处理找到计算机视觉通道
  12. shift键计算机功能,分享新手必会的快捷键:shift键的11个妙用!
  13. C语言指针 * 和 总结
  14. webservice执行超长引发的两个问题
  15. October 20th 2017 Week 42nd Friday
  16. elastic-job VS xxl-job
  17. 微博html5轮博,微博轮博号购买_第1页_经管新媒
  18. github 多人协作
  19. OpenCV系列之轮廓:更多属性 | 二十四
  20. EXP-00091 Exporting questionable statistics.

热门文章

  1. vscode 用户配置添加 分号、保存格式化、单引号、function格式
  2. 设计模式一网打尽,40余篇文章带你领略设计模式之美
  3. 编写高质量代码的50条黄金守则-Day 02(首选readonly而不是const)
  4. python中字符集
  5. git基本概念与核心命令_Git:了解核心版本控制概念的初学者指南
  6. 如何使用JavaScript控制台:超越console.log()
  7. 如何开始使用centos_如何开始使用CentOS
  8. ssh框架配置文件流程_通过配置文件和安排增强您的工作流程
  9. 仅30分钟,在同一台设备安装discourse和wordpress
  10. ubuntu下安装psycopg2报错