如何创建 Windows Mobile 6.5.x 手指友好的股票控件?
Posted
技术标签:
【中文标题】如何创建 Windows Mobile 6.5.x 手指友好的股票控件?【英文标题】:How to create Windows Mobile 6.5.x finger friendly stock controls? 【发布时间】:2011-04-30 01:44:42 【问题描述】:我正在使用 .NET Compact Framework 3.5 用 C# 开发一个 Windows Mobile 应用程序。我的 WM 目标版本是 6.5.x。我的印象是微软在这个版本的操作系统中更新了库存控件,使其对手指更加友好(更大的字体、列表框中的行之间更大的空间等),但是当我创建例如一个 ListBox 控件时,它看起来和以前版本的操作系统一样(手写笔友好)。
我是否需要更新控件的样式才能利用这些新的手指友好的库存控件?但是,我似乎找不到任何关于此的文档。还是我误解了它;或许 WM 6.5.x 中没有新控件?
【问题讨论】:
【参考方案1】:您可以通过向列表视图发送LVM_SETEXTENDEDLISTVIEWSTYLE
消息并将掩码和样式设置为LVS_EX_THEME
来获得“新”列表视图项渲染:
var mask = (IntPtr)LVS_EX_THEME;
var style = (IntPtr)LVS_EX_THEME;
SendMessage(this.listView.Handle, LVM_SETEXTENDEDLISTVIEWSTYLE, mask, style);
你会以一种或另一种方式需要这些声明:
[DllImport("coredll.dll", SetLastError = true)]
public static extern Int32 SendMessage(IntPtr hWnd,
Int32 msg,
IntPtr wParam,
IntPtr lParam);
public const Int32
LVM_FIRST = 0x1000,
LVM_SETEXTENDEDLISTVIEWSTYLE = LVM_FIRST + 54;
public const Int32
LVS_EX_THEME = 0x02000000;
【讨论】:
感谢 Johann,这对 listview 控件有效(我猜;还没有测试过)。其他控件(例如列表框)呢? @vonolsson:我的猜测是“普通”的 Win32 控件,如列表框,不会得到微软的改造。 在 6.5.x 中有一些列表框(例如,结帐设置 -> 今天)对手指更友好。此外,我希望能够使用新的水平滚动控件(而不是使用旧的选项卡控件)。 @vonolsson:如果您查看 PROPSHEETHEADER 的 6.5.3 文档,您会看到 PSH_PIVOT。如果安装了 Platform Builder for WM,则它是一种私有样式,在 commctrl_priv.h 中定义为 0x4000。以上是关于如何创建 Windows Mobile 6.5.x 手指友好的股票控件?的主要内容,如果未能解决你的问题,请参考以下文章
Windows Mobile系列学习四:Windows Mobile如何进行打包设置打包显示图标
如何从 C# 动态运行 SQL Server CE [Windows mobile] 中的 SQL 脚本文件?