【问题标题】:How to create Windows Mobile 6.5.x finger friendly stock controls?如何创建 Windows Mobile 6.5.x 手指友好的股票控件?
【发布时间】:2011-04-30 01:44:42
【问题描述】:

我正在使用 .NET Compact Framework 3.5 用 C# 开发一个 Windows Mobile 应用程序。我的 WM 目标版本是 6.5.x。我的印象是微软在这个版本的操作系统中更新了库存控件,使其对手指更加友好(更大的字体、列表框中的行之间更大的空间等),但是当我创建例如一个 ListBox 控件时,它看起来和以前版本的操作系统一样(手写笔友好)。

我是否需要更新控件的样式才能利用这些新的手指友好的库存控件?但是,我似乎找不到任何关于此的文档。还是我误解了它;或许 WM 6.5.x 中没有新控件?

【问题讨论】:

    标签: winforms .net-3.5 windows-mobile compact-framework


    【解决方案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。
    猜你喜欢
    • 2018-05-05
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    • 2017-12-26
    • 2010-12-04
    • 1970-01-01
    相关资源
    最近更新 更多