![]() |
|
|
![]()
|
|
| nmc |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 7.4.2009 Репутация: нет Всего: -1 |
Как отловить собитие OnLButtonUp именно на втором листе, чтобы запустить копирование(drag-and-drop) когда нужно
1. листы на форме 2. Где можно посмотреть пример drag-and-drop c одного CListControl на другой CListControl |
|||
|
||||
| nmc |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 7.4.2009 Репутация: нет Всего: -1 |
Уточняю свой вопрос
В OnLvnBegindragList1(NMHDR *pNMHDR, LRESULT *pResult) получаем CString *stroka = (CString*)List.GetItemData(pNMLV->iItem); что копировать (путь к нужному файлу) В PreTranslateMessage перехватываем if(pMsg->message==WM_LBUTTONUP) { вызывается функция , кототоя копирует файлы/директории на второй List2 } Проблема в том копирования присходит даже если LBUTTONUP не над List2 Может определить координаты List2 и только тогда вызывавть функиию через PreTranslateMessage То есть как определть координаты или принадлежность point к List (Листы на форме)????????? Или нужен вообще другой подход ???????? |
|||
|
||||
| Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 12 Всего: 26 |
Это сообщение отредактировал(а) Andrey44 - 8.4.2009, 07:09 -------------------- ????? ??, ??????? ?????. |
|||
|
||||
| nmc |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 7.4.2009 Репутация: нет Всего: -1 |
List2.GetSafeHwnd() сработало
но возникла новая сложность После доработки кода для перемещения изображение невызывается из PreTranslateMessage функция копирования файлов/папок можно ли в OnLButtonUp отловить то что именно над вторым листом ButtonUp (List2.GetSafeHwnd()==******) или как ее вызвать теперь из PreTranslateMessage (перестала вызыватся) OnLvnBegindragList1(NMHDR *pNMHDR, LRESULT *pResult){ ......................... CPoint pt1 = List.GetCaretPos(); m_pDragImage = List.CreateDragImage(number1,&pt1); if( !m_pDragImage ) return; m_bLDragging = TRUE; m_pDragImage->BeginDrag(0, CPoint(-15,-15)); POINT pt = pNMLISTView->ptAction; ClientToScreen( &pt ); m_pDragImage->DragEnter(NULL, pt); SetCapture(); .............................. } ........ ......... OnMouseMove(UINT nFlags, CPoint point) { if (m_bLDragging) { POINT pt = point; ClientToScreen( &pt ); CImageList::DragMove(pt); } ............ } ........ ......... OnLButtonUp(UINT nFlags, CPoint point) { if (m_bLDragging){ m_bLDragging = FALSE; CImageList::DragLeave(this); CImageList::EndDrag(); ReleaseCapture(); delete m_pDragImage; if(????????????????) { функция копирования файлов/папок } } } ............ ИЛИ ?????????????????????????????????? PreTranslateMessage(MSG* pMsg) { .............. if(pMsg->message==WM_LBUTTONUP&&pMsg->hwnd==List2.GetSafeHwnd()&&beginDrAndDrop)//не вызывается!!!!!!! { функция копирования файлов/папок } ................. } Это сообщение отредактировал(а) nmc - 9.4.2009, 22:09 |
|||
|
||||
| Andrey44 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1501 Регистрация: 4.12.2006 Где: На работе Репутация: 12 Всего: 26 |
nmc, во-первых пользуйтесь тэгом код. Ничего-же разобрать нельзя!
Во-вторых
beginDrAndDrop = бывает когда нибудь true? Судя по коду что вы написали не бывает -------------------- ????? ??, ??????? ?????. |
|||
|
||||
| nmc |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 7.4.2009 Репутация: нет Всего: -1 |
Проверил beginDrAndDrop
он здесь не причем, в чем тогда может быть причина, и если использовать OnLButtonUp можно ли в нем отловить OnLButtonUp над вторым листом Andrey44 тот же код но с тэгом
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |