Как создать контрол, соответствующий TreeView WinExplorer'а
От: Lautsprecher  
Дата: 27.12.05 14:49
Оценка:
Привет всем

Я хочу в свое окно вставить контрол, который мы привыкли видеть в левой части Windows Explorer'а — в нем отображаются диски и папки. Я говорю о "древовидном отображении" в русской терминологии, или TreeView контроле, в котором обычно есть Рабочий Стол и его дочерние элементы — Мой Компьютер, Сетевое Окружение, и т.п.

Я знаю о функции SHBrowseForFolder, но она создает новое окно, а мне не хотелось бы плодить окна. Мне нужно вставить этот контрол в мое собственное окно.

Конечно, я мог бы создать TreeView контрол, и наполнить его дисками и папками, но мне эта идея кажется неправильной — во-первых, это означает уже с самого начала поворение того, что было сделано, и сделано неплохо, а во-вторых, все равно мой собственный контрол не будет автоматически обновляться в результате создания/удаления папок и т.п.

То есть, так или иначе, я хочу воспользоваться существующим контролом. Я не уверен на 100%, но мне кажется, что должна быть возможность внедрить этот контрол в свое окно.

Я знаю, что на точке нет это сделать можно — у меня есть пример. Вопрос в том, как это сделать на Си/WinAPI.

К сожалению, мои поиски в инете ни к чему не привели — видимо, не так искал.

Любые идеи приветствуются.

Игорь
Re: Как создать контрол, соответствующий TreeView WinExplore
От: Аноним  
Дата: 27.12.05 14:57
Оценка:
Здравствуйте, Lautsprecher, Вы писали:

Попробуй переделать http://www.codeproject.com/treectrl/shelltreectrl.asp в API
Re: Как создать контрол, соответствующий TreeView WinExplore
От: programmater  
Дата: 27.12.05 15:19
Оценка:
Здравствуйте, Lautsprecher, Вы писали:

L>Привет всем


L>Я хочу в свое окно вставить контрол, который мы привыкли видеть в левой части Windows Explorer'а — в нем отображаются диски и папки. Я говорю о "древовидном отображении" в русской терминологии, или TreeView контроле, в котором обычно есть Рабочий Стол и его дочерние элементы — Мой Компьютер, Сетевое Окружение, и т.п.


L>Я знаю о функции SHBrowseForFolder, но она создает новое окно, а мне не хотелось бы плодить окна. Мне нужно вставить этот контрол в мое собственное окно.


L>Конечно, я мог бы создать TreeView контрол, и наполнить его дисками и папками, но мне эта идея кажется неправильной — во-первых, это означает уже с самого начала поворение того, что было сделано, и сделано неплохо, а во-вторых, все равно мой собственный контрол не будет автоматически обновляться в результате создания/удаления папок и т.п.

Ну почему же не будет? А ты используй FindFirstChangeNotification/FindNextChangeNotification и WaitForSingleObject для отслеживания изменений. Или настоящий программист испугался трудностей?

L>То есть, так или иначе, я хочу воспользоваться существующим контролом. Я не уверен на 100%, но мне кажется, что должна быть возможность внедрить этот контрол в свое окно.

Это только кажется. Кстати, не только одному тебе. На самом деле такой возможности нету и контрола такого в системе тоже нету. Такие вопросы иногда всплывают на этом форуме. Когда-то всплыл и у меня. здесь
Автор: programmater
Дата: 25.10.04
то, что мне ответили.

L>Я знаю, что на точке нет это сделать можно — у меня есть пример. Вопрос в том, как это сделать на Си/WinAPI.

Попробуй ссылки на кодепрожект, если что, есть рабочий вариант на WTL. Есть и на WinAPI, но там вся обработка notifications делается в процедуре родительского окна.

L>К сожалению, мои поиски в инете ни к чему не привели — видимо, не так искал.

Я тож долго искал и ничего не нашел. Видимо нет-таки такого контрола в системе (во всяком случае доступного стандартными средствами).

L>Любые идеи приветствуются.


L>Игорь
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.