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

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

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

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


Дата: Июл 17, 2004 04:59:46 · Поправил: q_q

__Ranger
Спасибо за тестирование.

если в твоём коде убрать стиль DS_SETFONT, то всё работает
Я указал этот стиль по аналогии с авторским кодом, хотя, на мой взгляд он не уместен. У меня работает не зависимо от его присутствия или отсутствия. По идее DS_SETFONT - это стиль диалогового окна и при создании static-окна вида должна игнорировать его.

jekyll
мой пример работает даже на неадекватных виндах
Я могу только посочувствовать владельцем неадекватных ОС, ибо на танцах с бубном не специализируюсь.

cresta
несмотря на то, что хэндл вернулся) - пишет "Указанный тип ресурса в файле образа отсутствует" ... Почему ошибки - не знаю
Imho глупо анализировать lasterror если необходимость такого анализа не оговорена в документации. CreateWindowEx и SendMessage + STM_SETICON к таковым не относятся.

натыкал в коде PrintError ... foo.asm, 62 ... foo.asm, 68
У меня нет измененного тобой исходного текста, поэтому ссылки на конкретные строки неуместны.

На invoke ShowWindow,eax,SW_SHOW ...пишет
Будь точнее. В моем коде нет такой строки. Если, ты имеешь в виду invoke SendMessage, eax, STM_SETICON, icon, 0, то я прокомментировал это выше (про lasterror).

В пределах foo.exe - работает, в другой программе - нет.
Программа секретная?


Дата: Июл 17, 2004 05:29:26 · Поправил: jekyll

q_q
Я могу только посочувствовать владельцем неадекватных ОС, ибо на танцах с бубном не специализируюсь.
Я тоже. Странно другое, как написал __Ranger если убрать DS_SETFONT, то все работает. У трех людей с этим стилем иконок нет, у тебя есть. Это наводит только на одну мысль - ты заколдовываешь свои программы.

cresta
В пределах foo.exe - работает, в другой программе - нет. Со всеми вышеуказанными флагами,стилями и пр.

Кидай кусок кода.


Дата: Июл 17, 2004 06:14:25

jekyll
ты заколдовываешь свои программы
Это возможно. ;-) Бывает так, звонит человек, говорит, что у него что-то не получается, прихожу, прошу показать что и как делает, и все получается с первого раза.

Кидай кусок кода.
Это обращение к автору?


Дата: Июл 17, 2004 06:29:24

q_q
Это обращение к автору?
Да. Исправляюсь.


Дата: Июл 17, 2004 08:11:25

q_q
Я лишь привел абзац из описания статика в MSDN. Я не спорю, а лишь подкинул информацию к размышлению.
У меня foo ничего не рисует(xp pro sp1, твой код я не правил).


Дата: Июл 17, 2004 08:30:01 · Поправил: q_q

2 Toxic, __Ranger & jekyll
Кажется нашел.
/* WinUser.h */
...
#define DS_SETFONT          0x40L   /* User specified font for Dlg controls */
...
#if(WINVER >= 0x0501)
#define SS_REALSIZECONTROL  0x00000040L
#endif /* WINVER >= 0x0501 */
...
Еще раз проверил под xp'шко - иконок нет, получается дома, я проверял код без DS_SETFONT'а.

Согласно документации при использовании стиля SS_ICON размеры окна можно не указывать, если добавить стиль SS_REALSIZECONTROL, который, судя по документации влияет только на масштабирование изображения, подгоняя его под размеры static-окна, то размеры необходимо указать, ибо в этом случае окно создается строго по размерам заданным в CreateWindiwEx.
Попробовал поставить размеры 10x10 - в w2ksp4 и w98se иконки остались 32x32, а в xp'шке появились маленькие.

Итого: ваши винды адекватны документации, которую надо читать, чтобы попытаться объяснить необычное поведение программы, и лучше указывать размеры окна, как советует jekyll.


Дата: Июл 17, 2004 09:54:08

q_q
„Imho глупо анализировать lasterror “
Imho глупо не анализировать, тем более в случае, когда в документации описано, что элемент статик может вести себя неадекватно, если родительское окно - не диалог.
„Программа секретная?“
Нет, смотри аттач к теме про OpenFileDialog


Дата: Июл 17, 2004 10:17:21 · Поправил: q_q

cresta
хэндл вернулся... Imho глупо не анализировать
Что-то я не вижу, где написано, что CreateWindowEx и SendMessage + STM_SETICON и большинство других функций обязаны устанавливать lasterror в состояние ERROR_SUCCESS? Объяснись.

смотри аттач к теме про OpenFileDialog
В той ветке по состоянию на Июл 17, 2004 10:16:00 GMT+3 нет ни одного аттача, который бы я не прокомментировал, а в имеющихся нет упоминания о static'ах и значках.
Объяснись.


Дата: Июл 17, 2004 11:44:53

q_q
„Объяснись.“
Объясняюсь: есть цитата из MSDN (от Toxic). Поэтому заглядываю в lasterror, чтобы иметь хоть какую доп. информацию по процессу, происходящему при вызове функций. Согласен, что неполную, но тем не менее, может что и будет полезное. CreateWindowEx устанавливает lasterror.


Дата: Июл 17, 2004 12:02:42 · Поправил: q_q

cresta
До сих пор, msdn советовал анализировать значение lasterror, только в том случае, если функция завершила свою работу неудачно. Возможно, есть функции, результат работы которых определяют по GetLastError, CreateWindowEx к ним не относится.


Дата: Июл 18, 2004 01:20:48

cresta
„заглядываю в lasterror, чтобы иметь хоть какую доп. информацию по процессу, происходящему при вызове функций“

А какой смысл туда смотреть, если CreateWindowEx успешно создала окно(не важно, соответствует ли оно желаемому или нет)?

If the function fails, the return value is NULL. To get extended error information, call GetLastError
То есть, если вернула ноль - смотри код ошибки, если не-ноль - сидим тихо...


Дата: Июл 18, 2004 01:32:09

q_q
Кажется нашел.
...

Спасибо, буду знать. Но мне оно не нужно(по крайней мере на данный момент). Я лишь выступил в роли тестера, не вдаваясь в анализ(код не смотрел и не правил) - просто для статистики работоспособности кода на разных платформах. Поэтому „ваши винды адекватны документации, которую надо читать“ ко мне не относится. :)


Дата: Июл 18, 2004 02:03:44

Toxic
„То есть, если вернула ноль - смотри код ошибки, если не-ноль - сидим тихо...“
Ну что делать, если я такой любопытный и мне хочется заглянуть в lasterror :)))


Дата: Июл 18, 2004 02:37:40

cresta
Нет, смотри аттач к теме про OpenFileDialog

А в каком месте? Сделал поиск STM_SETICON и STM_SETIMAGE и не нашел ни одного вхождения =(


Дата: Июл 18, 2004 03:15:52

Извиняюсь, я удалил из кода SendMessage hWnd,STM_SETICON,0,0 и забыл, что его там нет :(

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


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