Как сделать элементы ListView похожими на те, что поставляются Microsoft в WM 6.5.3? - PullRequest
3 голосов
/ 30 июля 2010

альтернативный текст http://i31.tinypic.com/2iw52dl.png

Пожалуйста, смотрите скриншот выше. Левая часть - WM 6, а правая - WM 6.5.3. В 6.5.3 есть механизм автоматической разметки, который переключает все элементы управления, чтобы сделать их более сенсорными. Моя документация гласит:

По умолчанию автоматическое расположение отключено для сторонних приложений. Тем не мение. разработчики приложений могут включить эту функцию, установив в своем приложении следующий флаг стиля: DS_EX_AUTOTOUCHLAYOUT (0x00200000L). При включении механизм автоматической разметки автоматически устанавливает флаг стиля для каждого элемента управления, так что приложение поддерживает возможности касания пальцем.

Флаг DS_EX_AUTOTOUCHLAYOUT определен в моих заголовках DTK 6.5.3:

#define DS_EX_AUTOTOUCHLAYOUT   0x01000000L

(Обратите внимание, что значение документа и заголовка отличаются)

Но как бы я ни пытался использовать этот флаг с формами (класс пользовательского окна) или диалогами (класс окна DIALOG) из собственного или управляемого кода, я просто не могу взглянуть на правую сторону выше для своих элементов ListView. Я получаю только обычные тонкие (по высоте) сплошные фоновые предметы.

Я посмотрел около 10 приложений MS в эмуляторе с Remote Spy, и некоторые из них были нарисованы владельцем, но даже не большинством, так что это не может быть тем, что вызывает шикарный вид. Я не могу найти никакой другой закономерности, когда смотрю на приложения, поставляемые MS, в Remote Spy.

Как мне сделать так, чтобы мои приложения работали так же легко, как и MS, и выглядели так же хорошо?

Спасибо!

1 Ответ

3 голосов
/ 02 августа 2010

Секрет рендеринга «нового» элемента списка не имеет ничего общего с механизмом автоматической разметки. Просто отправьте в виде списка сообщение LVM_SETEXTENDEDLISTVIEWSTYLE с маской и стилем, установленными на LVS_EX_THEME!

Несколько советов по настройке ListView в WM 6.5

...