Под дебагером номер правильный. Но сообщение возвращает ошибку. В справке ни слова почему может не удалится итем! Еще я хочу иметь возможность тащить файлы на ListView (очень нужно). Немогли бы вы помочь мне с этими вопросами, а то мои первые проги умирают на стадии разработки...
Omega Покажи код удаления (аттачем!). А по второму вопросу - DragAcceptFiles, но как ты будешь обрабатывать это сообщение, разве что сабклассируя ListView.
Еще вопрос хотя помоему никто здесь не отвечает! Почему возникает исключение на вызове функции??? Хотел организовать цикл для 5 Edit'ов с диолога mov IDEDIT, 3003 INVOKE GetDlgItemText, hWnd, IDEDIT, ADDR bufferPath, 255
Omega Телепатов нет, покажи проблемный код, а не этот клочок. Где исключение, какое исключение? Отладчиком умеешь пользоваться?
На какой имено первый или второй? Что касательно GetDlgItemText исключение возникает из за переменной IDEDIT (IDEDIT:WORD) в которой я хочу передать ID контрола а потом прирастить в цикле (ну обработать несколько контролов). И еще все же хотелось бы узнать как получить возможность тащить файлы на ListView (ну или посоветуйте замену - смысл проги в менеджере для копирования, хотел так вводишь имя папки создаеться item тащишь на него файл и далее как в Reget, пауза, запуск). P.S. Отладчиком пользуюсь но я новичок переходящий в разряд среднечков, так что ...
Omega Товарищ!! В стек нужно класть только по 4 байта (в Win32), если IDEDIT - это ворд, то вы совершаете большую ошибку. Ну, а) попробуй сделать ему DragAcceptFiles, и посмотреть, может он переадресует твоему окно сообщение WM_DRAGFILES. Если нет, то б) сабклассируй ListView, обрабатывай это сообщение в нём или в) сделай так, чтобы перетаскивать можно было на своё окно, а не на ListView.
Для какой надобности IDEDIT сделал word, а не dword? Может проблема в счётчике цикла, если он у тебя в одном регистов eax/ecx/edx. Они перетираются апи-функциями. Если у тебя идентификаторы валидные и идут по порядку, можно совместить счётчик и IDEDIT. Код (Text): push ebx mov ebx,3003 _loop: invoke GetDlgItemText, hWnd, ebx, addr bufferPath, 255 ;тут ещё что-нибудь, например скопировать данные из буфера ;чтобы не перетирать последующим вызовом inc ebx cmp ebx,3008 jl _loop pop ebx
Если тебя устроит, чтобы драг-дроп делался на окно, а не именно в листвью, то когда создаёшь окно, первый параметр CreateWindowEx укажи WS_EX_ACCEPTFILES. Когда будут бросать файлы на окно, в WndProc будет приходить сообщение WM_DROPFILES. Вот и будешь обрабатывать это сообщение, вызывая ф-цию DragQueryFile, чтобы получить имена файлов.
Big Thanks for all who answer me I will try your advices. Но насчет Drag and Drop мне бы хотелось все же на ListView потому что тама будет несколько каталогов для копирования а не один. Еще осталься не решеным вопрос темы, посмотрите плиз атач...
Об удалении: надо видеть всю прогу, чтобы конкретно что-то сказать. В аттаче пример, в котором удаляются из листвью нечётные итемы. Посмотри, сравни со своим, может просто изменишь условие удаления и используешь. 1380649877__delete_item.zip
На этом же примере как сделать drag'n'drop в листвью и добавить в лист имя упавшего на него файла. Только учти, теперь все сообщения для листвью надо обрабатывать в ListProc _1168551447__delete_item.zip