Re[3]: вопрос по MFC
Здравствуйте !
> ЛВ>> 1. как программно изменить стиль диалога?
> Y> А зачем программно? Все стили задаются в редакторе диалогов.
Пожалуй, не все. Но те что очень надо, можно ручками пописать
в файле ресурсов.
> вот понимаешь, в редакторе мне не надо. это раз.
> во-вторых, почему-то в диалоге не получается использовать стиль
> WS_EX_TOOLWINDOW (в SDI - нормально, в диалоге - нет, не знаю, почему?
> подскажите, плиз!!!)
WS_EX_TOOLWINDOW ставится прямо из редактора ресурсов и при использовании с
диалогом - все OK.
> ЛВ>> 2. Можно ли менять стиль после создания окна (например,
> функцией ModifyStyle())?
> ЛВ>> когда изменения вступят в силу?
> Y> по идее можно, изменения вступают с силу сразу после вызова.
> Y> Возможно также, что на некоторые стили эта функция не влияет.
> есть функция ModifyStyleEx() которая меняет расширеные стили.
Угу, именно так - ModifyStyle - основные стили меняет, ModifyStyleEx -
расширенные. На самом деле все делается одной API функцией -
SetWindowLong.
> я просто что-то не учел. надо разобраться, почему не меняются стили.
> код - генерится стандартный диалог без всех прибамбасов.
А конкретно какие стили надо поставить диалогу ?
Опишите поподробнее задачу. Может, есть простые решения.
Диалог, кстати, как я понял, создается на основе шаблона из ресурсов ?
Это насчет PreCreateWindow... Если посмотреть в код MFC, то PreCreateWindow
вызывается из CWnd::CreateEx, либо CFrameWnd::GetIconWndClass перед
вызовом CreateWindow. Это просто виртуальная функция именно для того,
чтобы дать возможность программисту подкорректировать содержимое
CREATESTRUCT (вплоть до определения класса создаваемого окна).
Для диалога, который создается через CreateDialogIndirect, PreCreateWindow
не вызывается (нечего там менять (класс окна менять нельзя, стили заданы в
шаблоне)).
--
С уважением, Вахтуров Виктор.
Номер выпуска : 4241
Возраст листа : 561 (дней)
Количество подписчиков : 526
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/345156
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru