Closed GoogleCodeExporter closed 9 years ago
Падаем в
ATLASSERT((GetStyle() & LVS_SINGLESEL) != 0);
---------------------------
Microsoft Visual C++ Debug Library
---------------------------
Debug Assertion Failed!
Program: D:\vc10\r5xx\compiled\flylinkdc_Debug.exe
File: d:\vc10\r5xx\wtl\atlctrls.h
Line: 3205
Expression: (GetStyle() & 0x0004) != 0
For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.
(Press Retry to debug the application)
---------------------------
Прервать Повтор Пропустить
---------------------------
// single-selection only
int GetSelectedIndex() const
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT((GetStyle() & LVS_SINGLESEL) != 0);
return (int)::SendMessage(m_hWnd, LVM_GETNEXTITEM, (WPARAM)-1, MAKELPARAM(LVNI_ALL | LVNI_SELECTED, 0));
}
Original comment by Pavel.Pimenov@gmail.com
on 17 Jul 2013 at 2:51
Агу, есть такое, однако оно работает, и
можно на это забить. Ассерт предупреждает о
том, что не всё выделенное будет обработано.
Original comment by a.rain...@gmail.com
on 17 Jul 2013 at 3:07
В r14544 мая выпилил вот такой велосипед:
2932 - int WinUtil::getFirstSelectedIndex(const CListViewCtrl& list)
2933 - {
2934 - for (int i = 0; i < list.GetItemCount(); ++i)
2935 - {
2936 - if (list.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED)
2937 - {
2938 - return i;
2939 - }
2940 - }
2941 - return -1;
2942 - }
и заменил на вызов GetSelectedIndex(). Имхо, даже с
ассертом это лучше.
Original comment by a.rain...@gmail.com
on 17 Jul 2013 at 3:11
Как забить?
раньше ведь не падало
ctrlHubs.GetSelectedIndex() пр мультиселекте что вернет?
Хотя тут проверка
if (ctrlHubs.GetSelectedCount() == 1)...
Original comment by Pavel.Pimenov@gmail.com
on 17 Jul 2013 at 3:11
Если не нравится ассерт можно написать
другой велосипед, чем то схожий с GetNextSelected в
наших шаблонных листах. Но сильно
сомневаюсь, что в этом есть смысл.
Original comment by a.rain...@gmail.com
on 17 Jul 2013 at 3:14
>>ctrlHubs.GetSelectedIndex() пр мультиселекте что
вернет?
вернёт индекс первого выбранного.
Original comment by a.rain...@gmail.com
on 17 Jul 2013 at 3:15
Ну так что? Воскрешать велосипед?
Original comment by a.rain...@gmail.com
on 17 Jul 2013 at 3:24
Нет. оставь пока так.
в коде только коммент нужно поставить
Original comment by Pavel.Pimenov@gmail.com
on 17 Jul 2013 at 3:26
Original comment by Pavel.Pimenov@gmail.com
on 30 Jul 2013 at 2:56
Original issue reported on code.google.com by
Pavel.Pimenov@gmail.com
on 17 Jul 2013 at 2:48