Функция CListCtrl :: GetSelectedColumn () в C ++ не работает должным образом в ОС Windows 10 - PullRequest
0 голосов
/ 21 декабря 2018

Мы занимались разработкой с использованием класса 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>

Я буду очень признателен, если кто-то сможет пролить больше света на это, и если у кого-то естьстолкнулся с той же проблемой, то, как они решили ее.Любой фрагмент или функция, которые можно выполнить, пожалуйста, дайте мне знать.Я буду очень признателен, если смогу получить ответ как можно скорее
Спасибо - Ян

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