Что-то, препятствующее стандартному (в стиле проводника) переходу CListCtrl к поведению строки - PullRequest
1 голос
/ 11 февраля 2010

Я поддерживаю 45-странное проектное решение MFC / COM / ATL, изначально написанное на VS6. Я сейчас использую VS2008. Я смотрю на элемент управления списком (vanilla CListCtrl), который не ведет себя так, как нам кажется. Обычно в элементе управления списком MFC вы можете нажать клавишу (скажем, Q), и выбор перейдет к 1-й строке, начинающейся с 'Q' (как в Windows Explorer). У кого-нибудь есть идея, почему этого не может произойти? Стили / Расширенные стили установлены так же, как и другой элемент управления в том же проекте, который работает нормально. Должен ли я отправлять собственное сообщение, или есть флаг и т. Д., Который контролирует эту функцию или что? Обычно Google предоставил бы ответ, но я не смог правильно сформулировать свой запрос, чтобы получить соответствующую информацию на этот раз. Вот строка из файла .rc для CListCtrl, которая не переходит на строку при нажатии клавиши:

 CONTROL         "List1",IDC_BAL_LIST,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,0,73,493,230

А вот строка из того же файла .rc, показывающая элемент управления списком, который делает это:

CONTROL         "List1",IDC_LIST1,"SysListView32",LVS_REPORT | LVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,1,38,501,219

Как видите, в свойствах нет очевидной разницы, так какой программный код повлияет на это?

1 Ответ

0 голосов
/ 15 марта 2010

Я теперь понял, в чем проблема (возвращаясь к ней после перерыва) - CListCtrl соответствует столбцу ZERO (столбец «метка», как некоторые называют его, я думаю) - который является скрытым столбцом (в этом особый элемент управления списком), который иногда содержит число, а иногда не заполнен, поэтому не удивительно, что он ничего не делает, когда нажата буквенная клавиша. Очевидно, на самом деле - я прошу прощения за то, что проблема стала более сложной, чем она была на самом деле;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...