Выделение в ListView с LVS_SINGLESEL
От:
NordS
Дата: 24.01.05 16:25
Оценка:
Как можно выделить строку в CListViewCtr с установленным стилем LVS_SINGLESEL? SelectItem не работает.
Re: Выделение в ListView с LVS_SINGLESEL
Здравствуйте, NordS, Вы писали:
NS>Как можно выделить строку в CListViewCtr с установленным стилем LVS_SINGLESEL? SelectItem не работает.
SetItemState
Имею скафандр — готов путешествовать!
Re[2]: Выделение в ListView с LVS_SINGLESEL
Здравствуйте, rus blood, Вы писали:
NS>>Как можно выделить строку в CListViewCtr с установленным стилем LVS_SINGLESEL? SelectItem не работает.
RB>SetItemState
это в MFC надо было извращаться с SetItemState, а в WTL CListViewCtrlT::SelectItem() именно это и делает:
BOOL SelectItem(int nIndex)
{
ATLASSERT(::IsWindow(m_hWnd));
ATLASSERT((GetStyle() & LVS_SINGLESEL) != 0);
BOOL bRet = SetItemState(nIndex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
if (bRet)
bRet = EnsureVisible(nIndex, FALSE);
return bRet;
}
Re[3]: Выделение в ListView с LVS_SINGLESEL
От:
NordS
Дата: 25.01.05 06:53
Оценка:
Здравствуйте, Odi$$ey, Вы писали:
OE>Здравствуйте, rus blood, Вы писали:
NS>>>Как можно выделить строку в CListViewCtr с установленным стилем LVS_SINGLESEL? SelectItem не работает.
RB>>SetItemState
OE>это в MFC надо было извращаться с SetItemState, а в WTL CListViewCtrlT::SelectItem() именно это и делает:
OE>OE> BOOL SelectItem(int nIndex)
OE> {
OE> ATLASSERT(::IsWindow(m_hWnd));
OE> ATLASSERT((GetStyle() & LVS_SINGLESEL) != 0);
OE> BOOL bRet = SetItemState(nIndex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
OE> if (bRet)
OE> bRet = EnsureVisible(nIndex, FALSE);
OE> return bRet;
OE> }
OE>
Да, но вот в чем дело:
ATLASSERT((GetStyle() & LVS_SINGLESEL) != 0);
а у меня как раз стоит LVS_SINGLESEL
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Re[4]: Выделение в ListView с LVS_SINGLESEL
Здравствуйте, NordS, Вы писали:
NS>Да, но вот в чем дело:
NS>ATLASSERT((GetStyle() & LVS_SINGLESEL) != 0);
NS>а у меня как раз стоит LVS_SINGLESEL
как устанавливал?
Re: Выделение в ListView с LVS_SINGLESEL
От:
NordS
Дата: 25.01.05 12:08
Оценка:
Здравствуйте, NordS, Вы писали:
NS>Как можно выделить строку в CListViewCtr с установленным стилем LVS_SINGLESEL? SelectItem не работает.
Всем спасибо за ответы.
SetItemState(nIndex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED); — при LVS_SINGLESEL работает.
Но спрашивается зачем было ставить
ATLASSERT((GetStyle() & LVS_SINGLESEL) != 0);
в SelectItem
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Re: Выделение в ListView с LVS_SINGLESEL
От:
NordS
Дата: 25.01.05 12:09
Оценка:
Здравствуйте, NordS, Вы писали:
NS>Как можно выделить строку в CListViewCtr с установленным стилем LVS_SINGLESEL? SelectItem не работает.
Всем спасибо за ответы.
SetItemState(nIndex, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED); — при LVS_SINGLESEL работает.
Но спрашивается зачем было ставить
ATLASSERT((GetStyle() & LVS_SINGLESEL) != 0);
в SelectItem
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
Re[2]: Выделение в ListView с LVS_SINGLESEL
Здравствуйте, NordS, Вы писали:
NS>Но спрашивается зачем было ставить
NS>ATLASSERT((GetStyle() & LVS_SINGLESEL) != 0);
NS>в SelectItem
Проверка, что в стилях выставлен бит LVS_SINGLESEL.
Если она у тебя не проходит, значит стиль у тебя не выставлен.
Имею скафандр — готов путешествовать!
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить