Добрый день!
Как сделать, чтобы при щелчке мышкой на ListCtrl и перемещении не появлялся пунктирный прямоугольник, очерчивающий область, в которой выделяются объекты.
ListCtrl в моде:
/* current mode
list.ModifyStyle( NULL, LVS_REPORT | LVS_SHOWSELALWAYS);
list.SetExtendedStyle( list.GetExtendedStyle() | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES );
*/
выделение в CListView
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
Помоему LVS_SINGLESEL поможет. Но при этом выделять только один элемент можно будет -
list.ModifyStyle( NULL, LVS_REPORT | LVS_SHOWSELALWAYS|LVS_SINGLESEL);
И если я не ошибаюсь, то этот стиль нельзя менять после создания. Т.е. лучше не через ModifyStyle а либо в Create выставлять этот стиль либо в ресурсах если он в диалоге
list.ModifyStyle( NULL, LVS_REPORT | LVS_SHOWSELALWAYS|LVS_SINGLESEL);
И если я не ошибаюсь, то этот стиль нельзя менять после создания. Т.е. лучше не через ModifyStyle а либо в Create выставлять этот стиль либо в ресурсах если он в диалоге
-
- Сообщения: 9
- Зарегистрирован: 16 авг 2004, 15:39
- Откуда: Saint-Petersburg
- Контактная информация:
Да, это помогает, но нужно именно, чтобы был Мултироу селект работал. Например, в SourceSafe так и сделано.
Вероятней всего это свойство именно CView, потому что, если кинуть СListCtrl на диалоговое окно, то такого выделения нет.
Как это свойство по английски называется, чтобы на Codeguru поискать?

Вероятней всего это свойство именно CView, потому что, если кинуть СListCtrl на диалоговое окно, то такого выделения нет.
Как это свойство по английски называется, чтобы на Codeguru поискать?
From MSDN:
LVN_MARQUEEBEGIN
Notifies a list-view control's parent window that a bounding box (marquee) selection has begun. This notification message is sent in the form of a WM_NOTIFY message.
LVN_MARQUEEBEGIN
pnmv = (LPNMLISTVIEW) lParam;
Parameters
pnmv
Address of an NMHDR structure.
Return Values
Note A bounding box selection is the process of clicking the list-view window's client area and dragging to select multiple items simultaneously.To accept the notification message, return zero. To quit the bounding box selection, return nonzero.
LVN_MARQUEEBEGIN
Notifies a list-view control's parent window that a bounding box (marquee) selection has begun. This notification message is sent in the form of a WM_NOTIFY message.
LVN_MARQUEEBEGIN
pnmv = (LPNMLISTVIEW) lParam;
Parameters
pnmv
Address of an NMHDR structure.
Return Values
Note A bounding box selection is the process of clicking the list-view window's client area and dragging to select multiple items simultaneously.To accept the notification message, return zero. To quit the bounding box selection, return nonzero.
-
- Сообщения: 9
- Зарегистрирован: 16 авг 2004, 15:39
- Откуда: Saint-Petersburg
- Контактная информация:
Спасибо, Вы реально помогли!!!
:h
afx_msg void OnLvnBeginMarque(NMHDR* pNMHDR, LRESULT* pResult);
:cpp
ON_NOTIFY_REFLECT(LVN_MARQUEEBEGIN, OnLvnBeginMarque)
void CSearchListView::OnLvnBeginMarque(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
*pResult = 1;
}
:h
afx_msg void OnLvnBeginMarque(NMHDR* pNMHDR, LRESULT* pResult);
:cpp
ON_NOTIFY_REFLECT(LVN_MARQUEEBEGIN, OnLvnBeginMarque)
void CSearchListView::OnLvnBeginMarque(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
*pResult = 1;
}
---
Best regards,
vga
Best regards,
vga
Это не мы =) это MSDN такой