Closed pavel-pimenov closed 9 years ago
From Pavel.Pimenov@gmail.com on July 17, 2013 07:51:33
Падаем в ATLASSERT((GetStyle() & LVS_SINGLESEL) != 0);
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.
// 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));
}
From a.rain...@gmail.com on July 17, 2013 08:07:55
Агу, есть такое, однако оно работает, и можно на это забить. Ассерт предупреждает о том, что не всё выделенное будет обработано.
From a.rain...@gmail.com on July 17, 2013 08:11:23
В 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(). Имхо, даже с ассертом это лучше.
From Pavel.Pimenov@gmail.com on July 17, 2013 08:11:53
Как забить? раньше ведь не падало ctrlHubs.GetSelectedIndex() пр мультиселекте что вернет? Хотя тут проверка if (ctrlHubs.GetSelectedCount() == 1)...
From a.rain...@gmail.com on July 17, 2013 08:14:32
Если не нравится ассерт можно написать другой велосипед, чем то схожий с GetNextSelected в наших шаблонных листах. Но сильно сомневаюсь, что в этом есть смысл.
From a.rain...@gmail.com on July 17, 2013 08:15:14
ctrlHubs.GetSelectedIndex() пр мультиселекте что вернет?
вернёт индекс первого выбранного.
From a.rain...@gmail.com on July 17, 2013 08:24:42
Ну так что? Воскрешать велосипед?
From Pavel.Pimenov@gmail.com on July 17, 2013 08:26:24
Нет. оставь пока так. в коде только коммент нужно поставить
From Pavel.Pimenov@gmail.com on July 29, 2013 19:56:14
Status: Done
From Pavel.Pimenov@gmail.com on July 17, 2013 16:48:17
При нажатии правой кнопки мыша: http://www.flickr.com/photos/96019675@N02/9306072715/
Original issue: http://code.google.com/p/flylinkdc/issues/detail?id=1091