【WM】制作Window Mobile 的今日插件之补充

简介:   原本最近没有取得什么显著的技术积累,所以本文原本未打算成文,但是最终我想既然我在开发“世界时钟”这个小插件遇到的几次小问题,使我觉得有必要把这些小细节写出来以作一个显著的备忘。   起源是我受其他手机的界面启发,想开发一个世界时钟插件。

  原本最近没有取得什么显著的技术积累,所以本文原本未打算成文,但是最终我想既然我在开发“世界时钟”这个小插件遇到的几次小问题,使我觉得有必要把这些小细节写出来以作一个显著的备忘。

  起源是我受其他手机的界面启发,想开发一个世界时钟插件。最初我利用 WM_TODAYCUSTOM_QUERYREFRESHCACHE 消息尝试去推动时钟的分针前进,即由于 WM_TODAYCUSTOM_QUERYREFRESHCACHE 消息每两秒接收到一次,则我希望用在第30次收到该消息时,将时钟的分针向前加1。但是我发现这样做不行,因为在手机关闭屏幕(待机)状态下(屏幕被其他程序的界面占据时未作详细验证,因为目前无法下结论),该消息将无法收到,因此时钟停止走动,导致计时不准。然后我以为是 WM_TODAYCUSTOM_QUERYREFRESHCACHE 消息在关屏时停发的原因,而改为有 WM_TIMER (定时器)消息驱动分针,但结果证明依然失效。所以最终还是改为在 WM_TODAYCUSTOM_QUERYREFRESHCACHE 里查询当前的系统时间的 小时,分钟 是否有变化,而去根据这个时间再次根据时区的偏移值计算出当地时间,从而强制更新时间,这样才解决掉了时钟停止走动的问题。即:

 

  (1)WM_TODAYCUSTOM_QUERYREFRESHCACHE 消息不能当作驱动性脉冲信号,即我们不能将其当作时钟性依赖,而是必须理解为咨询插件是否要更新内容和显示的目的而发的。因此它可能在某些不必要的情况下停止发送。而在插件上,值得注意的是 WM_TIMER 在手机待机时也没有持续发送,这推翻了我之前固有的想法。

 

    

 

    (2)TransparentImage 函数可以用于 HDC 或者 HBITMAP 的透明性传送;

目录
相关文章
|
7月前
|
iOS开发
解决使用document.activeElement.blur()禁止弹出手机默认键盘ios版本17以上会出现闪屏问题
解决使用document.activeElement.blur()禁止弹出手机默认键盘ios版本17以上会出现闪屏问题
75 2
|
Swift iOS开发
iOS 13 之后自定义 Window 不显示解决 (SceneDelegate)
iOS 13 之后自定义 Window 不显示解决 (SceneDelegate)
363 0
|
图形学
Unity 编辑器开发实战【Editor Window】- Filter 物体筛选工具
Unity 编辑器开发实战【Editor Window】- Filter 物体筛选工具
332 0
Unity 编辑器开发实战【Editor Window】- Filter 物体筛选工具
|
存储 JSON 图形学
Unity 编辑器开发实战【Editor Window】- 构建公司内部的PackageManager
Unity 编辑器开发实战【Editor Window】- 构建公司内部的PackageManager
428 1
Unity 编辑器开发实战【Editor Window】- 构建公司内部的PackageManager