【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 的透明性传送;

目录
相关文章
|
5月前
|
安全 JavaScript 前端开发
kotlin开发安卓app,JetPack Compose框架,给webview新增一个按钮,点击刷新网页
在Kotlin中开发Android应用,使用Jetpack Compose框架时,可以通过添加一个按钮到TopAppBar来实现WebView页面的刷新功能。按钮位于右上角,点击后调用`webViewState?.reload()`来刷新网页内容。以下是代码摘要:
|
移动开发 自然语言处理 JavaScript
移动端H5使用window.open跳转,IOS不生效解决
移动端H5使用window.open跳转,IOS不生效解决
803 2
|
Swift iOS开发
iOS 13 之后自定义 Window 不显示解决 (SceneDelegate)
iOS 13 之后自定义 Window 不显示解决 (SceneDelegate)
355 0
|
存储 JSON 图形学
Unity 编辑器开发实战【Editor Window】- 构建公司内部的PackageManager
Unity 编辑器开发实战【Editor Window】- 构建公司内部的PackageManager
419 1
Unity 编辑器开发实战【Editor Window】- 构建公司内部的PackageManager
|
iOS开发
iOS剪切板UIPasteboard开发应用解析(一)
iOS剪切板UIPasteboard开发应用解析
318 0
iOS剪切板UIPasteboard开发应用解析(一)
|
开发者 iOS开发
iOS剪切板UIPasteboard开发应用解析(二)
iOS剪切板UIPasteboard开发应用解析
280 0
iOS剪切板UIPasteboard开发应用解析(二)