• MessageOnly Windows


    在Windows平台开发桌面应用程序的时候,经常会遇到这样一种情况:

    • 我需要定时做一些事情,但是这些事情是后台的,顶多是做完了通知一下相关的GUI控件进行刷新。

    使用定时器是一个很直觉型的解决方案。但是不巧的是,在Windows平台,定时器是和窗口消息绑定在一起的。为了解决这个问题,很多人不得不去创建一个隐藏的窗口,通过这个窗口把相关的事情串联起来。

    我个人认为,这不失为一个好的解决方案。但是对隐藏窗口需要多费一点口舌。

    为什么这么说呢?很多人(特别是初学者),在创建这种窗口时套用常规的创建窗口的方式,唯一不同的地方是不指定WS_VISIBLE。那这样做到底有什么不好的地方?这可能需要具体问题具体分析,这里就简单罗列几个需要考虑的点:

    • 隐藏窗口是否能占有焦点?
    • 隐藏窗口是否要考虑Z-order?
    • 如果存在自动化测试,这个窗口是否需要被枚举到?

    如果实际的需求是上面3个问题都应该被否定,那么应该如何创建这个隐藏的窗口呢?

    我想Windows已经考虑到这种情况的存在,因此存在这么一个概念:Message-Only Windows。它的关键在HWND_MESSAGE这个特殊的父窗口句柄。具体细节不是很复杂,参考链接即可。

  • 相关阅读:
    matlab绘制椭圆 ezplot
    matlab绘制函数 y=ln(1+x)
    matlab绘制函数 y=e^(x)
    matlab绘制函数
    matlab绘制函数
    matlab绘制函数
    常用求导公式复习
    积分变换
    复变函数
    概率论与数理统计目录
  • 原文地址:https://www.cnblogs.com/wpcockroach/p/2441488.html
Copyright © 2020-2023  润新知