Мы занимались разработкой с использованием класса CListCtrl.В Windows 7 все работает нормально, но в Windows 10 os это немного странно.Я пытаюсь достичь чего-то очень простого. У меня есть функция, скажем, funSelect, фрагмент кода выглядит следующим образом
// Эта функция пытается скопировать выбранный столбец, удерживаемый объектом CListCtrl
funcSelect ()
{
/ * Первый шаг, где я вызываю функцию GetSelectedColumn (), чтобы получить выбранный столбец, который является частью класса CListCtrl * /
int iselectedCoulmn = CListCtrlObj.GetSelectedColumn ();
// Если столбец не выбран, Windows 7 вернет -1, где Windows 10 возвращает 0
// на основе значения -1 остальная часть кода написана.Но в Win 10 это дает как 0.Таким образом, код не вызывает и создает проблемы
}
Я проверил все настройки, такие как файл манифеста, и он правильно использует ComCtl32.dll версии 6 Также он использует SDK Ver 10 и яЯ проверил настройку VS2015. Я вижу, что все SDK включены правильно настроены.Так что все эти вещи на месте.
Может кто-нибудь подсказать, почему этот API GetSelectedColumn () возвращает 0 вместо - 1. Изменилось ли что-нибудь для этого API для Windows10?
Правильное поведение: он должен получить -1, если столбец не выбран.Даже документы MSDN говорят об этом.Есть ли какой-нибудь альтернативный способ достижения GetSelectedColumn (), но более независимым от платформы и универсальным способом?
Любая функция или фрагмент кода очень помогут.
Также в качестве FYI в файле манифеста мы ввели тег совместимости, чтобы он мог вызывать собственный API, но даже после этого в возвращаемом значении GetSelectedColumn () не происходит никаких изменений.Он по-прежнему возвращает 0 вместо -1.
Так же, как к вашему сведению, нижеприведенное ниже было добавлено в файлы манифеста
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 10 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
<!-- Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<!-- Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<!-- Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
</application>
</compatibility>
Я буду очень признателен, если кто-то сможет пролить больше света на это, и если у кого-то естьстолкнулся с той же проблемой, то, как они решили ее.Любой фрагмент или функция, которые можно выполнить, пожалуйста, дайте мне знать.Я буду очень признателен, если смогу получить ответ как можно скорее
Спасибо - Ян