scrnsaver.h/dialog/slider траблы однако!
От: StupidU  
Дата: 19.08.05 14:54
Оценка:
Hello All!

Возникла странная проблема — если в диалоге настройки скринсейвера поместить slider то диалог не появляется совсем, без него все нормально.

Посмотрите пожалуйста аттач (всего 3 кило) и скажите кто виноват — моя голова,VC++ или Windows.

Подозреваю VC потому что пару лет назад я это делал и все было Ок. Сейчас, столкнувшись с этой проблеммой взял старый проект — он нормально выполняется, начинаю вырезать куски не выполняющиеся (к примеру из ScreenSaverProc) и после нескольких вырезаний диалог уже не появляется, откатываю, вырезаю тот же кусок снова, компилюю и вполне может оказаться что диалог выполняется а может и не оказаться.
Причем виноват именно слайдер, без него все работает как часы.
Проблема где то в линковке?
Других проблем замечено не было. Виндоза и VC стоят больше года и активно используются.


WBR Alexander.

ЗЫ не пинайте сильно за путанность речи — голова уже квадратная.


20.08.05 01:09: Перенесено модератором из 'C/C++' — Павел Кузнецов
Re: scrnsaver.h/dialog/slider траблы однако!
От: Кодт Россия  
Дата: 19.08.05 15:22
Оценка:
Здравствуйте, StupidU, Вы писали:

SU>Возникла странная проблема — если в диалоге настройки скринсейвера поместить slider то диалог не появляется совсем, без него все нормально.


Потому что, скорее всего, ты где-то потерял инициализацию библиотеки common controls.
Как следствие, диалог пытается загрузить шаблон (из ресурса) с неизвестным ему оконным классом. И даёт отлуп.
Что делать: вызвать в начале программы функцию InitCommonControls или InitCommonControlsEx.
InitCommonControls();

// или так

INITCOMMONCONTROLSEX iccdata;
iccdata.dwSize = sizeof(INITCOMMONCONTROLSEX);
iccdata.dwICC = ~0; // или, если не прокатит, напиши ICC_WIN95_CLASSES, или читай документацию
BOOL icc_ok = InitCommonControlsEx(&iccdata);
ASSERT(icc_ok);
Перекуём баги на фичи!
Re[2]: scrnsaver.h/dialog/slider траблы однако!
От: StupidU  
Дата: 19.08.05 15:42
Оценка:
Спасибо Кодт

Проблема решена! Как я не наступал на эти граблт раньше?


ЗЫ А где мой аттач?
Re[3]: scrnsaver.h/dialog/slider траблы однако!
От: Кодт Россия  
Дата: 19.08.05 15:54
Оценка:
Здравствуйте, StupidU, Вы писали:

SU>Спасибо Кодт


SU>Проблема решена! Как я не наступал на эти граблт раньше?


MFC-шный визард автоматически это делал. Поэтому и не наступал.

SU>ЗЫ А где мой аттач?


1) А ты его загрузил?
2) Тогда смотри коллекцию своих файлов (www.rsdn.ru/Tools/Private/FileList.aspx)
3) скопируй оттуда ссылку (например, www.rsdn.ru/File/4783/catsmiley.gif — это мой кот в ориджине) и вставь в сообщение.
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.