Как программно установить стиль контрола в диалоге?
От: springborn  
Дата: 17.01.05 06:31
Оценка:
Здравствуйте.

Имеется диалоговое окно с WebBrowser контролом. Мне необходимо программно установить стиль отображения данного
контрола. Подскажите, пожайлуста, в обработчике какого события это сделать?

Спасибо.
Re: Как программно установить стиль контрола в диалоге?
От: S.Saveliev Россия  
Дата: 17.01.05 06:41
Оценка:
Здравствуйте, springborn, Вы писали:

S>Здравствуйте.


S>Имеется диалоговое окно с WebBrowser контролом. Мне необходимо программно установить стиль отображения данного

S>контрола. Подскажите, пожайлуста, в обработчике какого события это сделать?

WM_INITDIALOG
Re[2]: : Как программно установить стиль контрола в диалоге?
От: springborn  
Дата: 17.01.05 06:47
Оценка:
Здравствуйте, S.Saveliev, Вы писали:

SS>Здравствуйте, springborn, Вы писали:


S>>Здравствуйте.


S>>Имеется диалоговое окно с WebBrowser контролом. Мне необходимо программно установить стиль отображения данного

S>>контрола. Подскажите, пожайлуста, в обработчике какого события это сделать?

SS>WM_INITDIALOG

Пробывал уже. Не работает.
Re[3]: [2]: : Как программно установить стиль контрола в диа
От: S.Saveliev Россия  
Дата: 17.01.05 06:48
Оценка:
Здравствуйте, springborn, Вы писали:

S>Здравствуйте, S.Saveliev, Вы писали:


SS>>Здравствуйте, springborn, Вы писали:


S>>>Здравствуйте.


S>>>Имеется диалоговое окно с WebBrowser контролом. Мне необходимо программно установить стиль отображения данного

S>>>контрола. Подскажите, пожайлуста, в обработчике какого события это сделать?

SS>>WM_INITDIALOG

S>Пробывал уже. Не работает.

Можно на код взглянуть?
Re[4]: [3]: [2]: : Как программно установить стиль контрола
От: springborn  
Дата: 17.01.05 06:52
Оценка:
Здравствуйте, S.Saveliev, Вы писали:

SS>Здравствуйте, springborn, Вы писали:


S>>Здравствуйте, S.Saveliev, Вы писали:


SS>>>Здравствуйте, springborn, Вы писали:


S>>>>Здравствуйте.


S>>>>Имеется диалоговое окно с WebBrowser контролом. Мне необходимо программно установить стиль отображения данного

S>>>>контрола. Подскажите, пожайлуста, в обработчике какого события это сделать?

SS>>>WM_INITDIALOG

S>>Пробывал уже. Не работает.

SS>Можно на код взглянуть?



BOOL MyDlg::OnInitDialog() 
{
    CDialog::OnInitDialog();

    m_wndWebBrowser.ModifyStyleEx(0, WS_EX_CLIENTEDGE);

    return TRUE;
}
Re[5]: [4]: [3]: [2]: : Как программно установить стиль конт
От: S.Saveliev Россия  
Дата: 17.01.05 06:57
Оценка:
S>
S>BOOL MyDlg::OnInitDialog() 
S>{
S>    CDialog::OnInitDialog();

S>    m_wndWebBrowser.ModifyStyleEx(0, WS_EX_CLIENTEDGE);

S>    return TRUE;
S>}
S>


Вы проверяли GetExStyle возвращает этот стиль?
Может быть то, что Вы видите и хотите убрать реализуется набором нескольких стилей?
Re[6]: [5]: [4]: [3]: [2]: : Как программно установить стиль
От: springborn  
Дата: 17.01.05 07:07
Оценка:
Здравствуйте, S.Saveliev, Вы писали:

S>>
S>>BOOL MyDlg::OnInitDialog() 
S>>{
S>>    CDialog::OnInitDialog();

S>>    m_wndWebBrowser.ModifyStyleEx(0, WS_EX_CLIENTEDGE);

S>>    return TRUE;
S>>}
S>>


SS>Вы проверяли GetExStyle возвращает этот стиль?

SS>Может быть то, что Вы видите и хотите убрать реализуется набором нескольких стилей?
GetExStyle() возвращает этот стиль, но он не применяется к контролу.
Re[7]: [6]: [5]: [4]: [3]: [2]: : Как программно установить
От: S.Saveliev Россия  
Дата: 17.01.05 07:16
Оценка:
SS>>Вы проверяли GetExStyle возвращает этот стиль?
SS>>Может быть то, что Вы видите и хотите убрать реализуется набором нескольких стилей?
S>GetExStyle() возвращает этот стиль, но он не применяется к контролу.

наверное Вы ошиблись, когда написали "не применяется" — я понял, что Вам его убрать надо?
Попробуйте установить окну WS_BORDER, будет работать?
Re[7]: [6]: [5]: [4]: [3]: [2]: : Как программно установить
От: S.Saveliev Россия  
Дата: 17.01.05 07:20
Оценка:
сорри за предыдущий сабж — сплю
может окошко создать не функцией Create, а CreateEx?
Re[8]: [7]: [6]: [5]: [4]: [3]: [2]: : Как программно устано
От: springborn  
Дата: 17.01.05 07:23
Оценка:
Здравствуйте, S.Saveliev, Вы писали:

SS>сорри за предыдущий сабж — сплю

SS>может окошко создать не функцией Create, а CreateEx?
То есть имеется ввиду то, чтобы создать контрол самостоятельно
в обработчике OnCreate() диалога?
Re[9]: [8]: [7]: [6]: [5]: [4]: [3]: [2]: : Как программно у
От: S.Saveliev Россия  
Дата: 17.01.05 07:25
Оценка:
Здравствуйте, springborn, Вы писали:

S>Здравствуйте, S.Saveliev, Вы писали:


SS>>сорри за предыдущий сабж — сплю

SS>>может окошко создать не функцией Create, а CreateEx?
S>То есть имеется ввиду то, чтобы создать контрол самостоятельно
S>в обработчике OnCreate() диалога?

да, но я предпочитаю это делать в OnInitDialog, когда работаю с диалоговыми классами
Re[10]: [9]: [8]: [7]: [6]: [5]: [4]: [3]: [2]: : Как програ
От: springborn  
Дата: 17.01.05 07:31
Оценка:
Здравствуйте, S.Saveliev, Вы писали:

SS>Здравствуйте, springborn, Вы писали:


S>>Здравствуйте, S.Saveliev, Вы писали:


SS>>>сорри за предыдущий сабж — сплю

SS>>>может окошко создать не функцией Create, а CreateEx?
S>>То есть имеется ввиду то, чтобы создать контрол самостоятельно
S>>в обработчике OnCreate() диалога?

SS>да, но я предпочитаю это делать в OnInitDialog, когда работаю с диалоговыми классами

А разве все доченрние контролы не создаются к моменту вызова OnInitDialog()?
Re[11]: [10]: [9]: [8]: [7]: [6]: [5]: [4]: [3]: [2]: : Как
От: S.Saveliev Россия  
Дата: 17.01.05 07:42
Оценка:
S>А разве все доченрние контролы не создаются к моменту вызова OnInitDialog()?

создаются, конечно, но я не уверен, что ВСЕ из них создаются методом CreateEx
Re[12]: [11]: [10]: [9]: [8]: [7]: [6]: [5]: [4]: [3]: [2]:
От: springborn  
Дата: 17.01.05 07:44
Оценка:
Здравствуйте, S.Saveliev, Вы писали:

S>>А разве все доченрние контролы не создаются к моменту вызова OnInitDialog()?


SS>создаются, конечно, но я не уверен, что ВСЕ из них создаются методом CreateEx

Дык если контрол уже создан не получится создать его заново.
Re[13]: [12]: [11]: [10]: [9]: [8]: [7]: [6]: [5]: [4]: [3]:
От: S.Saveliev Россия  
Дата: 17.01.05 07:48
Оценка:
Здравствуйте, springborn, Вы писали:

S>Здравствуйте, S.Saveliev, Вы писали:


S>>>А разве все доченрние контролы не создаются к моменту вызова OnInitDialog()?


SS>>создаются, конечно, но я не уверен, что ВСЕ из них создаются методом CreateEx

S>Дык если контрол уже создан не получится создать его заново.

не вызывайте для этого контрола ничего в DoDataExchange и он не будет создан,
а у Вас будет возможность создать его ручками для теста
Re[14]: [13]: [12]: [11]: [10]: [9]: [8]: [7]: [6]: [5]: [4]
От: springborn  
Дата: 17.01.05 08:01
Оценка:
Здравствуйте, S.Saveliev, Вы писали:

SS>Здравствуйте, springborn, Вы писали:


S>>Здравствуйте, S.Saveliev, Вы писали:


S>>>>А разве все доченрние контролы не создаются к моменту вызова OnInitDialog()?


SS>>>создаются, конечно, но я не уверен, что ВСЕ из них создаются методом CreateEx

S>>Дык если контрол уже создан не получится создать его заново.

SS>не вызывайте для этого контрола ничего в DoDataExchange и он не будет создан,

SS>а у Вас будет возможность создать его ручками для теста
Создание этого контрола ручками не совсем приемлемый вариант для меня, так как повлечет
за собой множество переделок. Неужели нет другого способа изменить стиль отображения контрола,
иначе как создавать и позционировать его в диалоге вручную.
Re[15]: [14]: [13]: [12]: [11]: [10]: [9]: [8]: [7]: [6]: [5
От: S.Saveliev Россия  
Дата: 17.01.05 08:07
Оценка:
S>Создание этого контрола ручками не совсем приемлемый вариант для меня, так как повлечет
S>за собой множество переделок.

не множество, а всего-лишь вызов CreateEx и нахождения прямоугольной области для окна

S>Неужели нет другого способа изменить стиль отображения контрола,


если окно создано методом Create, я предполагаю, что расширенные стили оно не поддерживает

S>иначе как создавать и позционировать его в диалоге вручную.


я уже писал, как это делается
Re[5]: [3]: [2]: : Как программно установить стиль контрола
От: DimpLe Беларусь  
Дата: 17.01.05 10:26
Оценка:
Здравствуйте, springborn, Вы писали:

S>Здравствуйте, S.Saveliev, Вы писали:


SS>>Здравствуйте, springborn, Вы писали:


S>>>Здравствуйте, S.Saveliev, Вы писали:


SS>>>>Здравствуйте, springborn, Вы писали:


S>>>>>Здравствуйте.


S>>>>>Имеется диалоговое окно с WebBrowser контролом. Мне необходимо программно установить стиль отображения данного

S>>>>>контрола. Подскажите, пожайлуста, в обработчике какого события это сделать?

SS>>>>WM_INITDIALOG

S>>>Пробывал уже. Не работает.

SS>>Можно на код взглянуть?



S>
S>BOOL MyDlg::OnInitDialog() 
S>{
S>    CDialog::OnInitDialog();

S>    m_wndWebBrowser.ModifyStyleEx(0, WS_EX_CLIENTEDGE);

S>    return TRUE;
S>}
S>


A cобственно где сабкласится контрол? лучше всего делать там же там. хотя просабкласить контрол можно только после инициализации диалога тоесть после\в InitDialog. Либо он создается динамически и только потом добавляется на диалог?
Если не динамически то какой контрол на диалог вытягивал в редакторе ресурсов? Если Custom контрол то там в свойствах можно задать ExStyle. Задай 0x00000200 и будет тебе счастье (это если только Client Edge нужно)
... << RSDN@Home 1.1.3 stable >>
Re[6]: [5]: [3]: [2]: : Как программно установить стиль конт
От: springborn  
Дата: 17.01.05 10:37
Оценка:
Здравствуйте, DimpLe, Вы писали:

DL>Здравствуйте, springborn, Вы писали:


S>>Здравствуйте, S.Saveliev, Вы писали:


SS>>>Здравствуйте, springborn, Вы писали:


S>>>>Здравствуйте, S.Saveliev, Вы писали:


SS>>>>>Здравствуйте, springborn, Вы писали:


S>>>>>>Здравствуйте.


S>>>>>>Имеется диалоговое окно с WebBrowser контролом. Мне необходимо программно установить стиль отображения данного

S>>>>>>контрола. Подскажите, пожайлуста, в обработчике какого события это сделать?

SS>>>>>WM_INITDIALOG

S>>>>Пробывал уже. Не работает.

SS>>>Можно на код взглянуть?



S>>
S>>BOOL MyDlg::OnInitDialog() 
S>>{
S>>    CDialog::OnInitDialog();

S>>    m_wndWebBrowser.ModifyStyleEx(0, WS_EX_CLIENTEDGE);

S>>    return TRUE;
S>>}
S>>


DL>A cобственно где сабкласится контрол? лучше всего делать там же там. хотя просабкласить контрол можно только после инициализации диалога тоесть после\в InitDialog. Либо он создается динамически и только потом добавляется на диалог?

DL>Если не динамически то какой контрол на диалог вытягивал в редакторе ресурсов? Если Custom контрол то там в свойствах можно задать ExStyle. Задай 0x00000200 и будет тебе счастье (это если только Client Edge нужно)
WebBrowser control размещаю на диалоге с помощью редактора ресурсов. К сожалению из редактора для данного контрола нельзя указать расширенный стиль. Попробую просубклассить.
Re[7]: [5]: [3]: [2]: : Как программно установить стиль конт
От: DimpLe Беларусь  
Дата: 17.01.05 10:57
Оценка:
S>WebBrowser control размещаю на диалоге с помощью редактора ресурсов. К сожалению из редактора для данного контрола нельзя указать расширенный стиль. Попробую просубклассить.

стояночка ты мне скажи
1. какой контрол ты вытаскиваешь на диалог в редакторе ресурсов (насколько я помню там нету такого как WebBrowser. нужно типа вытаскивать Custom control потом его подключать либо из редакторов ресурса либо сабкласить )
2. ты пытался не просабкласив контрол изменить его свойства это интересно
тут нужно делать следующее

m_wndWebBrowser.SubclassWindow( GetDlgItem( ТВОЙ_КОНТРОЛ ) );
m_wndWebBrowser.ModifyStyleEx( 0, WS_EX_CLIENTEDGE );
m_wndWebBrowser.UnsubclassWindow();


3. можно сделать без сабклассинга методами WIN API. Если интересно пиши накропаю код
... << RSDN@Home 1.1.3 stable >>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.