![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
JusTalionis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 576 Регистрация: 11.7.2006 Репутация: 6 Всего: 17 |
и как это сделать в VB?
ЗЫ: для Win9X разумеется; (XP сама по себе это умеет.) |
|||
|
||||
amt |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 249 Регистрация: 26.10.2004 Где: г. Волгоград Репутация: 3 Всего: 3 |
А ты где-нибудь искал?
Я где-то это видел. Кто-то выкладывал пример, вот только не помню - то ли ехе-ник, то ли код. Поищи на форуме и в инете. --------------------
С точки зрения банальной эрудиции не каждый индивидуум способен игнорировать тенденции парадоксальных эмоций. |
|||
|
||||
JusTalionis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 576 Регистрация: 11.7.2006 Репутация: 6 Всего: 17 |
На Винграде искал, причем в первую очередь! Но по ключевому слову "прозрачный" не нашлось ничего.
![]() В Нете искал - нашлось только куча самописных утилит, которые делают это. Размер примерно в 20К, т.е. чё-то небольшое - типа запуска API может быть? Если код у кого есть - поделитесь, плизззз! А екзешник мне как-то никчему, - в лом его ломать ![]() |
|||
|
||||
~FoX~ |
|
||||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 10 Всего: 68 |
Идея такова:
Поверх картинки на рабочем столе лижит ListView на котором собственно иконки и держуться.... Получаем хэндл этого диста и шлем ему месагу о смене цвета на нейтральный Код модуля:
Код формы:
Если чесно мне не удалось заставить правильно работать этот код, у меня цвет становился кислотно зеленым, но думаю это не большая проблема, просто гдето с константами напутал...Но общая идея верная, так что дерзай.....Удачи. Хотя этот код перенесенный с рабочего кода делфи... Это сообщение отредактировал(а) ~FoX~ - 28.9.2006, 08:43 |
||||
|
|||||
JusTalionis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 576 Регистрация: 11.7.2006 Репутация: 6 Всего: 17 |
Пасиб, попробую покрутить это дело; если получится, отпишу.
ЗЫ: Отдельное БОЛЬШОЕ СПАСИБО за комменты в коде!!! Это сообщение отредактировал(а) JusTalionis - 28.9.2006, 13:58 |
|||
|
||||
JusTalionis |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 576 Регистрация: 11.7.2006 Репутация: 6 Всего: 17 |
Вторая часть марлезонского балета.
Проверил: действительно, цвет фона устанавливается зеленым, и причем только на тех местах, которые были закрыты формой или чем-нибудь - то есть апдейт не происходит. Однако то, что этот цвет вообще меняется, показывает, что доступ к ListView все-таки получен правильно. Очевидно, "сообщение" на изменение цвета и апдейт посылается неверно. Попробовал поменять значение CLR_NONE и "магические числа" - но цвет все равно не менялся. Где могла бы быть ошибка? Цвет посылается через lParam. Я предположил, что в Declare перед ним пропущено ByVal, и вставил его. Компилятор немедленно выдал ошибку "несовпадение типов". Учитывая, что через lParam передаются числа, я установил ему As Long (вместо As Any). И вот тогда цвет начал меняться! ![]() В конечном счете, код получился таким:
и
Но апдейт все равно не делается!!!! Я не мог найти, почему. Проверил значения col - оба равны единице. Не знаю что она означает, но в моем дилетантском понимании, отсутствие ошибки обычно индицируется нулем. Друзья, помогайте, кто знает! До победного осталось чуть-чуть ![]() |
||||
|
|||||
~FoX~ |
|
||||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 10 Всего: 68 |
Странно, мне казалось RGB оно и есть RGB...Тем более странно что &HFFFF уж точно никак не лонг ![]() Дозволительно конечно, но тоже странно, наверное надо было явный тип описывать
Наоборот, если апиха выполнилась правильно, то она возвращает не 0 (результат работы), в простивном случае 0, ошибку можно посмотреть по GetLastError (если я не путаю).... Вот что говорит МСДН про апдейт:
Попробуй в первом параметре передать 0, или в цикле проапдейтить все элементы листа. Количество итемов тебе вернет LVM_GETITEMCOUNT Это сообщение отредактировал(а) ~FoX~ - 29.9.2006, 17:19 |
||||
|
|||||
JusTalionis |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 576 Регистрация: 11.7.2006 Репутация: 6 Всего: 17 |
Я исходил не из типа числа, а из типа, который хочет функция (а они почти все требуют Long)
А это какой такой? Вот что говорит МСДН про апдейт:
Буковок много! И все незнакомые! Еще раз и по-русски ![]() Попробуй в первом параметре передать 0, пробовал по-всякому, и нули, и единицы, - нифига. или в цикле проапдейтить все элементы листа. Количество итемов тебе вернет LVM_GETITEMCOUNT ![]() А его сам неужели проапдейтить нельзя? |
||||||
|
|||||||
~FoX~ |
|
||||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 10 Всего: 68 |
Ну примерный перевод: Это сообщение обнавляет элимент listview-а. Если контрол имеет вид список и стиль АВТОУПОРЯДОЧЕНИЯ, эта макрокоманда заставляет контрол переупорядочить списк. Вы можете посылать это сообщение явно или, используя макрос ListView_Update. Под рукой нету компилятора поэтому проверить не могу:
Примерно так:
А в объявлении функции оставить as Any.....Ну вобщем то не морочься по этому поводу ![]() Вот тут в голову пришло: ListView не имеет собственного апдейта...но т.к. он является наследником TWinControl (или как там базовые классы обозначаются в ВБ) можно использовать месагу UpdateWindow.... Это сообщение отредактировал(а) ~FoX~ - 30.9.2006, 11:54 |
||||
|
|||||
JusTalionis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 576 Регистрация: 11.7.2006 Репутация: 6 Всего: 17 |
Ну не верится просто, чтоб собственного апдейта не было!.. Билл конечно Гейтс, но не настолько же!..
![]() ![]() Оказалось, есть какие-то, которые выстраивают значки то ли по алфавиту, то ли еще как, на других эксплорер "выполнил недопустимую операцию" короче, я чуть весь Рабочий Стол себе не порушил ![]() Но почему-то не делает его под режимом "показывать стол как веб-страницу". В этом минус подобных шаманских методов: никогда не знаешь, где именно они перестанут работать ![]() ![]() А вот про наследование - оч интересная мысль! Кто-нибудь может практический код написать? ![]() |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Модератор: Прикольные у вас тут дискуссии. Как добьетесь нужного результата напишите, пожалуйста, статейку для FAQ'a.
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 10 Всего: 68 |
cardinal, Да без проблем
![]() |
|||
|
||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 10 Всего: 68 |
Гмм.....не хочиться тебя расстраивать, но это не является апдейтом.....
|
|||
|
||||
~FoX~ |
|
||||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 10 Всего: 68 |
Небольшие ковыряния привели меня к выводу, что в то время как в ключен актив дисктоп, поверх нашего SysList-a лежит еще одно полноэкранное приложение и манипулировать нужно уже им....
А как это делать я пока не знаю ![]() Вот что вышло у меня при отключенном АД: Модуль:
Кнока
Это сообщение отредактировал(а) ~FoX~ - 4.10.2006, 10:45 |
||||
|
|||||
JusTalionis |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 576 Регистрация: 11.7.2006 Репутация: 6 Всего: 17 |
~FoX~:
![]() Кста, попробовал твой вариант с перерисовкой всех итемов. Твой код без изменений, сработал сразу же! Но, к сожалению, в "режиме веб-страницы" так же точно - не апдейтит. Твой сегодняшний код тож попробую; что наблюдается - отпишу. cardinal: По этой теме ФАК написать не могу, так как сам еще толком не понимаю, но даже и найденный вариант пока еще - "шаманство": то есть, как работает в деталях не ясно, поэтому не может быть рекомендовано другим, так как надежно не известно, заработает ли у них как надо. Но могу предложить в ФАК два других своих поста: http://forum.vingrad.ru/index.php?showtopic=106860 и http://forum.vingrad.ru/index.php?showtopic=104868 Изложенное там проверено мною лично на различных машинах. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "VB6" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | VB6 | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |