Вопрос № 21250: Здравствуйте, уважаемые эксперты.
Никак не могу найти описание, как сделать простейший файловый менеджер с возможностью копировать, удалять файлы. Что-то вроде виндового проводника. Большие, маленькие значки, список, таблица. В исходниках на разн...Вопрос № 21258: Уважаемые! Возник вопрос. Есть программа (консольная или Windows-приложение), которая запускает другое КОНСОЛЬНОЕ приложение.
Вопрос: Как из "родительской" программы перехватить вывод "дочернего" приложения(будь то сообщение о...
Вопрос № 21250
Здравствуйте, уважаемые эксперты.
Никак не могу найти описание, как сделать простейший файловый менеджер с возможностью копировать, удалять файлы. Что-то вроде виндового проводника. Большие, маленькие значки, список, таблица. В исходниках на разных сайтах много всего, но всё ооочень накручено. А простого: левая панель с деревом, правая панель с файлами - нет. В крайнем случае, можно без дерева.
Помогите, умоляю! Ведь делали «в молодости» такое. Знаете, где искать.
Огромное вам спасибо!
Отправлен: 24.05.2005, 00:27
Вопрос задал: Ermine (статус: Посетитель)
Всего ответов отправлено: 1
Отвечает: Jadd
Здравствуйте, Ermine!
Я лично не писал файловых менеджеров, как-то не интересно было (в линухе интерпретатор интересней было написать ;) ). Пару идей подкину. Значит так. Для начала идешь к учебникам по Visual C++ (надеюсь ты на нем пишешь) и усердно читаешь про конструкцию Документ-Представление. Дальше читаешь про класс CSplitterWnd. Этот сплиттер внд позволяет поделить главное окно приложения, да и любое окно, на столько кусков, сколько пожелаешь (главное меру соблюдать). Что в итоге. У тебя из одного CView получается два (к
примеру): левый и правый. Это я так, упрощенно говорю. Дальше, грузишь в каждую половинку свои вьюхи. Надеюсь, ты понимаешь, что на их месте мог бы быть ты...эээ....твои CTreeView и CListView. А дальше все просто. Загрузить дерево папок во время инициализации. Затем отобразить в ListView папки и файлы текущей папки. Ну, и дальше - дело твоей фантазии. Пиши, коли чего не ясно. Удачи.
Ответ отправил: Jadd (статус: 4-ый класс)
Отправлен: 24.05.2005, 09:40 Оценка за ответ: 4 Комментарий оценки: Канечно, не ясно! :) Вот этот самый код, который нужно запихать в "свои вьюхи", я и не могу найти. Если с деревом всё более или менее (примеров кода много), то со списком - не очень. Ладно. Будем искать ещё...
Вопрос № 21258
Уважаемые! Возник вопрос. Есть программа (консольная или Windows-приложение), которая запускает другое КОНСОЛЬНОЕ приложение.
Вопрос: Как из "родительской" программы перехватить вывод "дочернего" приложения(будь то сообщение об ошибке или обычный вывод)???
Отправлен: 24.05.2005, 04:56
Вопрос задал: Budri (статус: Посетитель)
Всего ответов отправлено: 1
Отвечает: Jadd
Здравствуйте, Budri!
Помнится я как-то писал такое дело. Только там речь идет не о перехвате, а о перенаправлении ввода-вывода. Короче долго разглогольствовать не буду, а подкину идейку, которая работает на все 100. Вся идея крутится вокруг пайпов (Pipe). Суть в том, что мы создаем пайп, в который передаем хэндлы потоков ввода-вывода дочернего процесса и, все, что остается - читать из этих пайпов. Подробнее читай в msdn, например, здесь http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/creating_a_child_process_with_redirected_input_and_output.asp
. Если этого мало или не поймешь, пиши, я пришлю пример с подробным описанием. Удачи
Ответ отправил: Jadd (статус: 4-ый класс)
Отправлен: 24.05.2005, 09:22