Не удаляеться итем ListView

Тема в разделе "WASM.BEGINNERS", создана пользователем Omega, 21 окт 2005.

  1. Omega

    Omega New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2005
    Сообщения:
    8
    Адрес:
    Uzbekistan
    Под дебагером номер правильный. Но сообщение возвращает ошибку. В справке ни слова почему может не удалится итем! Еще я хочу иметь возможность тащить файлы на ListView (очень нужно). Немогли бы вы помочь мне с этими вопросами, а то мои первые проги умирают на стадии разработки...
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Omega

    Покажи код удаления (аттачем!).

    А по второму вопросу - DragAcceptFiles, но как ты будешь обрабатывать это сообщение, разве что сабклассируя ListView.
     
  3. Omega

    Omega New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2005
    Сообщения:
    8
    Адрес:
    Uzbekistan
    Так что никак с Drag Files! И еще как Caps Lock и ему подобные зажечь?

    [​IMG] 4746270__Compare_func.txt
     
  4. Omega

    Omega New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2005
    Сообщения:
    8
    Адрес:
    Uzbekistan
    Еще вопрос хотя помоему никто здесь не отвечает!

    Почему возникает исключение на вызове функции??? Хотел организовать цикл для 5 Edit'ов с диолога :dntknw:



    mov IDEDIT, 3003

    INVOKE GetDlgItemText, hWnd, IDEDIT, ADDR bufferPath, 255
     
  5. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Omega

    Телепатов нет, покажи проблемный код, а не этот клочок.



    Где исключение, какое исключение? Отладчиком умеешь пользоваться?
     
  6. Omega

    Omega New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2005
    Сообщения:
    8
    Адрес:
    Uzbekistan
    На какой имено первый или второй? Что касательно GetDlgItemText исключение возникает из за переменной IDEDIT (IDEDIT:WORD) в которой я хочу передать ID контрола а потом прирастить в цикле (ну обработать несколько контролов).

    И еще все же хотелось бы узнать как получить возможность тащить файлы на ListView (ну или посоветуйте замену - смысл проги в менеджере для копирования, хотел так вводишь имя папки создаеться item тащишь на него файл и далее как в Reget, пауза, запуск).

    P.S. Отладчиком пользуюсь но я новичок переходящий в разряд среднечков, так что ...
     
  7. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Omega

    Товарищ!! В стек нужно класть только по 4 байта (в Win32), если IDEDIT - это ворд, то вы совершаете большую ошибку.





    Ну, а) попробуй сделать ему DragAcceptFiles, и посмотреть, может он переадресует твоему окно сообщение WM_DRAGFILES. Если нет, то б) сабклассируй ListView, обрабатывай это сообщение в нём или в) сделай так, чтобы перетаскивать можно было на своё окно, а не на ListView.
     
  8. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Для какой надобности IDEDIT сделал word, а не dword? Может проблема в счётчике цикла, если он у тебя в одном регистов eax/ecx/edx. Они перетираются апи-функциями. Если у тебя идентификаторы валидные и идут по порядку, можно совместить счётчик и IDEDIT.


    Код (Text):
    1.     push    ebx
    2.     mov     ebx,3003
    3. _loop:
    4.     invoke GetDlgItemText, hWnd, ebx, addr bufferPath, 255
    5.     ;тут ещё что-нибудь, например скопировать данные из буфера
    6.     ;чтобы не перетирать последующим вызовом
    7.     inc     ebx
    8.     cmp     ebx,3008
    9.     jl      _loop
    10.     pop     ebx
    11.  
     
  9. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Если тебя устроит, чтобы драг-дроп делался на окно, а не именно в листвью, то когда создаёшь окно, первый параметр CreateWindowEx укажи WS_EX_ACCEPTFILES. Когда будут бросать файлы на окно, в WndProc будет приходить сообщение WM_DROPFILES. Вот и будешь обрабатывать это сообщение, вызывая ф-цию DragQueryFile, чтобы получить имена файлов.
     
  10. Omega

    Omega New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2005
    Сообщения:
    8
    Адрес:
    Uzbekistan
    Big Thanks for all who answer me I will try your advices. Но насчет Drag and Drop мне бы хотелось все же на ListView потому что тама будет несколько каталогов для копирования а не один. Еще осталься не решеным вопрос темы, посмотрите плиз атач...
     
  11. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    Об удалении: надо видеть всю прогу, чтобы конкретно что-то сказать.

    В аттаче пример, в котором удаляются из листвью нечётные итемы. Посмотри, сравни со своим, может просто изменишь условие удаления и используешь.

    [​IMG] 1380649877__delete_item.zip
     
  12. cresta

    cresta Active Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    2.257
    На этом же примере как сделать drag'n'drop в листвью и добавить в лист имя упавшего на него файла. Только учти, теперь все сообщения для листвью надо обрабатывать в ListProc



    [​IMG] _1168551447__delete_item.zip
     
  13. Omega

    Omega New Member

    Публикаций:
    0
    Регистрация:
    11 июн 2005
    Сообщения:
    8
    Адрес:
    Uzbekistan
    Thanks one more! I will try...