|
|
| Посл.отвђт | Сообщен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 |
|
|
Дата: Июл 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. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.092 |