Access 97. Как узнать HWnd или Device Context контрола "Рисунок" в форме?

squid
Дата: 01.06.2004 12:50:04
Хочу слоять что-то своего эксплорера, но привязаного к своей БД. В TreeView отображаються папки и файлы, все как надо ;-))) Захотел прицепить чтоб еще и иконки к файлам были.
Нашел примеры, разобрал и все понял. Но


1) Извлечь иконку
hIcon = ExtractAssociatedIcon(Access.Application.hWndAccessApp, Node.Tag, nIcon)
2) Нарисовать иконку в picture
Call DrawIcon(HandleImage , 0, 0, hIcon)

3) Добавить в imageList и прявязать к дереву

Как узнать HWnd или Device Context контрола "Рисунок" в форме?
squid
Дата: 03.06.2004 14:37:38
Ну же !!! Что никто не знает ???
Serge Gavrilov
Дата: 03.06.2004 15:09:09
сделать можно, только жара страшная, мозги уже спеклись
А зачем контрол "Рисунок"?
Может сразу в IPictureDisp и соответственно в свойство Picture (IimageList)?
Жарко, у меня в комнате 34 ...
squid
Дата: 04.06.2004 11:20:09
Сколько примеров пересмотрел - везде последовательность примерно такая
1. Рисуеться иконка в picture
2. Добавляеться из picture в imagelist
3. Уже из imagelist без проблем прицепить к listvew/treeview

CСколько ни искал - тщетно, никто не отвечает, сам я запарился - перерыл MSDN, в инете начитался.... А результата 0

Правда была надежда - есть API дающий Hwnd контрола имеющего фокус... но picture иметь фокус не может ;(((
Sfagnum
Дата: 04.06.2004 12:40:10
ну вот ты сам и ответил... :(

Сделать можно всё!!!
Только бы знать как...
SergeySV
Дата: 04.06.2004 16:03:40
Контрол "Рисунок" в форме не может иметь фокуса, а потому по правилам Access и не становится никогда окном. Единственно что ты можешь - добраться до всей поверхности формы(она имеет и hWnd и hDC) и рисовать на ней, можно вычислить коорд. своей картинки относ. угла формы и тогда уже не промахнешься

Либо использовать не Access контрол, которые уже всегда отображаются как окна вне зависимости от фокуса, например тот же MSForms 2.0 Image и т.д.
Serge Gavrilov
Дата: 04.06.2004 23:23:47
Нашел свой пример с выводом в Image иконки файла, посмотрите, это уже легко развить для вашей цели. Сам хотел, но времени нет...
Serge Gavrilov
Дата: 07.06.2004 11:38:46
To squid:

Получилось или нет?
squid
Дата: 22.06.2004 17:15:07
Опять вернулся к этой же проблеме......

1) Структуру IPictDisplay заполнить могу но переназначать картинкам в имажелист - Нет

2) Serge Gavrilov
Ваш пример я рассмотрел, причем сразу же. Единственное что плохо - каждое добавление иконки в лист идет через запись на диск/считываение/занесение в лист..... это очент медленно получается.

Я уверен на 100% что есть способ. Но где он ?? ;-)))
Serge Gavrilov
Дата: 22.06.2004 19:31:27
автор
Ваш пример я рассмотрел, причем сразу же. Единственное что плохо - каждое добавление иконки в лист идет через запись на диск/считываение/занесение в лист..... это очент медленно получается.

Мне кажется вы плохо рассмотрели мой пример, потому как для заненсения иконки в Image List вовсе не надо сохранять ее как файл, это мне понадобилось именно для контрола Image.