这是“使用 C# 开发智能手机软件:推箱子”系列文章的第八篇。在这篇文章中,介绍推箱子的 Smartphone 版本。
昨天,根据网友“mobile”的要求, 完成了推箱子的 Smartphone 版本,可点击这里下载。将解压缩后的 PushBoxStd.exe 文件放在 Pocket PC Phone 版本解压缩后得到 PushBox 目录下,然后再将整个 PushBox 目录一起拷贝到 Smartphone 上使用。由于 Smartphone 没有触摸屏,且支持的控件也比较少,所以该版本中取消了“菜单 -> 数据”的所有功能。但它使用的数据文件是和 Pocket PC Phone 版本的完全一样的,所以如果需要设计关卡的话,可以用 PushBox.exe 的计算机上设计,然后再拷贝到 Smartphone 上使用。
为 Pocket PC Phone 设备开发程序需要使用 Windows Mobile 6 Professional SDK Refresh,而为 Smartphone 设备开发程序需要使用 Windows Mobile 6 Standard SDK Refresh。这两个 SDK 可以在这里下载。关于开发智能手机程序,Microsoft 网站上有一篇很好的文章:Windows Mobile 6 中为开发人员提供的新功能。
将推箱子程序改为 Smartphone 版本,主要作了以下修改:
1. 在 Smartphone 上,主窗体的主菜单(MainMenu)的一级菜单项(MenuItem)最多只能有两个,否则运行时会抛出 NotSupportedException 异常。这应该是由于 Smartphone 没有触摸屏,两个一级菜单项刚好通过“左”、“右”软键控制。二级及以上的菜单项前面自动会加上“1”、“2”、“3”等阿拉伯数字,方便通过手机的数字键盘控制。
2. 由于 Smartphone 不支持状态栏(StatusBar)控件,所以状态信息就在主窗体的:
protected override void OnPaint(PaintEventArgs e)
方法中调用 e.Graphics.DrawStirng() 方法直接绘制在客户区下方。
3. 由于 Smartphone 不支持按钮(Button)控件,在“选项”等对话框中的“确定”和“取消”等按钮直接用相应的一级菜单项(MenuItem)代替。
4. 数字选择(NumbericUpDown)控件使用文本框(TextBox)控件代替。
5. 跟踪条(TrackBar)控件使用文本框(TextBox)控件代替。
6. 列表框(ListBox)控件使用列表视图(ListView)控件代替。
7. 选项卡(Tabcontrol)控件找不到相应的控件代替,只好不用。
8. 由于 Smartphone 不支持触摸屏,所以取消了“菜单 -> 数据”的所有功能。因为设计关卡时光使用键盘是很难控制的。


上一篇:使用 C#开发智能手机软件:推箱子(七)
下一篇:使用 C#开发智能手机软件:推箱子(九)
返回目录
昨天,根据网友“mobile”的要求, 完成了推箱子的 Smartphone 版本,可点击这里下载。将解压缩后的 PushBoxStd.exe 文件放在 Pocket PC Phone 版本解压缩后得到 PushBox 目录下,然后再将整个 PushBox 目录一起拷贝到 Smartphone 上使用。由于 Smartphone 没有触摸屏,且支持的控件也比较少,所以该版本中取消了“菜单 -> 数据”的所有功能。但它使用的数据文件是和 Pocket PC Phone 版本的完全一样的,所以如果需要设计关卡的话,可以用 PushBox.exe 的计算机上设计,然后再拷贝到 Smartphone 上使用。
为 Pocket PC Phone 设备开发程序需要使用 Windows Mobile 6 Professional SDK Refresh,而为 Smartphone 设备开发程序需要使用 Windows Mobile 6 Standard SDK Refresh。这两个 SDK 可以在这里下载。关于开发智能手机程序,Microsoft 网站上有一篇很好的文章:Windows Mobile 6 中为开发人员提供的新功能。
将推箱子程序改为 Smartphone 版本,主要作了以下修改:
1. 在 Smartphone 上,主窗体的主菜单(MainMenu)的一级菜单项(MenuItem)最多只能有两个,否则运行时会抛出 NotSupportedException 异常。这应该是由于 Smartphone 没有触摸屏,两个一级菜单项刚好通过“左”、“右”软键控制。二级及以上的菜单项前面自动会加上“1”、“2”、“3”等阿拉伯数字,方便通过手机的数字键盘控制。
2. 由于 Smartphone 不支持状态栏(StatusBar)控件,所以状态信息就在主窗体的:
protected override void OnPaint(PaintEventArgs e)
方法中调用 e.Graphics.DrawStirng() 方法直接绘制在客户区下方。
3. 由于 Smartphone 不支持按钮(Button)控件,在“选项”等对话框中的“确定”和“取消”等按钮直接用相应的一级菜单项(MenuItem)代替。
4. 数字选择(NumbericUpDown)控件使用文本框(TextBox)控件代替。
5. 跟踪条(TrackBar)控件使用文本框(TextBox)控件代替。
6. 列表框(ListBox)控件使用列表视图(ListView)控件代替。
7. 选项卡(Tabcontrol)控件找不到相应的控件代替,只好不用。
8. 由于 Smartphone 不支持触摸屏,所以取消了“菜单 -> 数据”的所有功能。因为设计关卡时光使用键盘是很难控制的。





上一篇:使用 C#开发智能手机软件:推箱子(七)
下一篇:使用 C#开发智能手机软件:推箱子(九)
返回目录
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述