【WM】制作Window Mobile 的今日插件之补充
2010-03-25 21:43
363 查看
原本最近没有取得什么显著的技术积累,所以本文原本未打算成文,但是最终我想既然我在开发“世界时钟”这个小插件遇到的几次小问题,使我觉得有必要把这些小细节写出来以作一个显著的备忘。
起源是我受其他手机的界面启发,想开发一个世界时钟插件。最初我利用 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 的透明性传送;
起源是我受其他手机的界面启发,想开发一个世界时钟插件。最初我利用 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 的透明性传送;
相关文章推荐
- 制作Unity插件之-创建一个Window窗口
- windows mobile 6.0系统中自己制作的今日插件,通过“开始-设置-系统-屏幕-文字大小”调整文字大小后,插件上的文字大小不改变!
- 我的Window Mobile WCF 項目 第三篇 WM窗体设计
- Mobile开发(今日菜单插件)
- [转] VS.NET 2005 开发微软智能手机SmartPhone Window Mobile 5.0 开发环境配置指南
- MFC 制作OCX插件
- 制作AppCan插件的那些坑
- 制作AppCan插件的那些坑
- Discuz!X 插件制作教程(二) ------ 管理中心
- 制作单页的动画插件
- 利用BMP通道和UpdateLayeredWindow制作边缘透明不规则窗口
- 在Eclipse中制作和使用struts2配置文件提示插件
- 今日插件的简单使用(转自ciahi的专栏)
- 【看完想不会都难系列教程】 - (1)使用CSS3+JQuery easing 插件制作绚丽菜单
- 制作jQuery slide show 插件手记
- 我制作的EditPlus生成UUID/GUID插件
- jquery插件制作 -- 4.自增长输入框
- 在Eclipse中制作SSH配置文件提示插件
- window之 WM_COPYDATA
- 制作你的第一个 Atom 文本编辑器插件