· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› static и иконка

<< . 1 . 2 . 3 . 4 . 5 . >>

Посл.отвђт Сообщенiе


Дата: Июл 16, 2004 07:14:10

q_q
Ты совсем меня запутал.
Распутываю =)

Что возвращает CreateWindowEx, когда создются static'и?
Хэндл созданного окна.

Означает ли это, что static-окна созданы, но в них ничего нет, т.е. он белого цвета?
Да. Иконки вроде должны отрисовываться, но поскольку они не найдены, то я вижу белое окно, которое по-видимому перекрывает текст.

Не понял. Мы работу какой программы обсуждаем?
Да это я отвлекся, просто работа уже мозг отымела =(

В этом коде нет ExtractAssociatedIcon
А причем здесь это, первоначальный вопрос был в том что надо сопоставить изображение статику, чтобы его не перерисовывать самому.

Вот твой код, мной подправленный, который рисует у меня картинку на статике.

_2100181612__static_icon.rar


Дата: Июл 16, 2004 07:28:07

jekyll
но поскольку они не найдены, то я вижу белое окно
Для ненайденных файлов, либо если у файла нет ассоциации, должна быть отрисована стандартная иконка из SHELL32.DLL.

А причем здесь это
Во втором посте автора темы есть указание, что дескриптор значка возвращает ExtractAssociatedIcon.

код ... который рисует у меня картинку на статике
У меня он рисует, если я заменю
invoke SendMessage,ebx,STM_SETIMAGE,IMAGE_ICON,eax
на
invoke SendMessage, ebx, STM_SETICON, eax, 0


Дата: Июл 16, 2004 07:37:35

q_q
Для ненайденных файлов, либо если у файла нет ассоциации, должна быть отрисована стандартная иконка из SHELL32.DLL.
Так нету! Вообще белый статик (а может это иконка из Shell32.dll???)

У меня он рисует, если я заменю
У меня работает и так и этак.

Какие же совместимые у нас винды =)


Дата: Июл 16, 2004 08:02:02

jekyll
а может это иконка из Shell32.dll???)
Нет.

У меня работает и так и этак.
Я коряво выразился. У меня тоже работают оба варианта и STM_SETIMAGE и STM_SETICON.


Дата: Июл 16, 2004 08:13:06

Ну вот, теперь надо понять, почему ExtractAssociatedIcon не ведет себя так, как хотелось.


Дата: Июл 16, 2004 08:18:44 · Поправил: jekyll

Внизу пример, надеюсь у всех заработает. Пора ложиться спать.


Дата: Июл 16, 2004 08:19:32

А вот и ExtractAssociatedIcon

187073393__static_icon.rar


Дата: Июл 16, 2004 08:47:22

jekyll
В чем отличие от оригинального, отсутствие проверок результата вызова api, дублирование стиля SS_ICON, перенос szFileX в rw-секцию .data? Так в моем коде для обеспечения rw используется стековый буфер.

jekyll & cresta
Что-то вы темните про нерабочий код.


Дата: Июл 16, 2004 09:08:29

q_q
В чем отличие от оригинального,
У меня, в отличии от оригинального, этот пример показывает иконку.

Что-то вы темните про нерабочий код.
Да ничего мы не темним. Твой ориганальный код показывает иконку только у тебя дома, поправленный мною - и у тебя и у меня. Почему, мне честно говоря лень разбираться, да и цель вроде достигнута.


Дата: Июл 16, 2004 09:30:33

q_q
БЛИН Ширину не надо в 0 устанавливать, и все заработает.!


Дата: Июл 16, 2004 10:13:58 · Поправил: q_q

jekyll
Спокойно. Я воспользовался документацией Static Control Styles (Windows Explorer and Controls) где черным по серому: SS_ICON ... The style ignores the nWidth and nHeight parameters; the control automatically sizes itself to accommodate the icon". Т.е. мои виды ведут себя адекватно документации, а ваши ;-).

только у тебя дома
У меня дома только xp.
На w2ksp4 и w98se проверял на совершенно других компьютерах.


Дата: Июл 16, 2004 15:35:47

Зачем вы ставите стиль DS_SETFONT??
2q_q
Изначально твой листинг у меня тоже не работал.
Но если в твоём коде убрать стиль DS_SETFONT, то всё работает.


Дата: Июл 16, 2004 16:48:50

q_q
Т.е. мои виды ведут себя адекватно документации, а ваши ;-).
Зато мой пример работает даже на неадекватных виндах =)


Дата: Июл 16, 2004 20:58:15

q_q
Убрал DS_SETFONT - тоже иконки появились в статиках. После этого натыкал в коде PrintError (из VKDebug). Вот что пишет:
1.На CreateWindowEx(статика) запрашиваю PrintError (несмотря на то, что хэндл вернулся) - пишет "Указанный тип ресурса в файле образа отсутствует". (foo.asm, 62)
3.На invoke ShowWindow,eax,SW_SHOW PrintError СНОВА пишет - "Указанный тип ресурса в файле образа отсутствует". (foo.asm, 68)
И так до конца прохождения цикла.
Почему ошибки - не знаю.


Дата: Июл 16, 2004 23:45:58

В пределах foo.exe - работает, в другой программе - нет. Со всеми вышеуказанными флагами,стилями и пр. Видимо, не зря написано:
„Although static controls can be used in overlapped, pop-up, and child windows, they are designed for use in dialog boxes, where the system standardizes their behavior. By using static controls outside dialog boxes, a developer increases the risk that the application might behave in a nonstandard fashion.“

<< . 1 . 2 . 3 . 4 . 5 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.092