Использование Inernet Explorer Activex

Тема в разделе "MS Visual C++", создана пользователем ivs4, 18 ноя 2005.

Статус темы:
Закрыта.
  1. ivs4

    ivs4 Гость

    Всем привет. Привел меня на форум следующий вопрос. Динамически в обрабочике С*Dialog::OnCreate создаю объект Internet Explorer
    Код (Text):
    if(m_explorer.Create(NULL,dwStyle,CRect(10,120,210,250),this,ID_BROWSER_LOG)==0)
    {
    AfxMessageBox("Ошибка ActiveX Internet Explorer");
    return -1;
    }
    m_explorer.Navigate("about:blank",NULL,NULL,NULL,NULL);
    Затем мне надо установить цвет фона и текста на странице. Для этого я использую объекты IHTMLDocument2 и DispHTMLBody.
    Код (Text):
    IHTMLDocument2 m_htmldoc(m_explorer.GetDocument());
    while(m_htmldoc.GetReadyState()!="complete")
    {
    ;
    }
    DispHTMLBody m_body=m_htmldoc.GetBody();
    tagVARIANT varcolor;
    varcolor.vt=VT_INT;
    varcolor.intVal=0;
    m_body.SetBgColor(varcolor);
    varcolor.lVal=0x0000FF00;
    m_body.SetText (varcolor);
    Так вот загвоздка в том, что m_explorer я получаю, а при выполнении m_explorer.GetDocument() m_htmldoc в своей инициализации доходит только до состояния loading и не далее. Из-за этого дальнейшее получение m_body результата не даст.
    Если кто-то встречался с данной ситуацией, то дайте совет
     
  2. Barmutik

    Barmutik Гость

    И что пауза не помогает ? Просто возможно он ещё не успел снавигироваться на пустую страницу.. и поэтому и отдаёт пустой документ...
     
  3. ivs4

    ivs4 Гость

    Спасибо, Гуру. Вопрос решен. Оказывается надо было дать лазейку для оконных сообщений при определении состояния IE. У меня получилось это следующим образом:
    Код (Text):
    MSG message;
    while(m_explorer.GetReadyState()!=4)
    {
    if(::PeekMessage (&message,NULL,0,0,PM_REMOVE))
    {
    ::TranslateMessage (&message);
    ::DispatchMessage (&message);
    }
    }
    А затем можно оаботать с приведенным мною выше кодом.
     
  4. Barmutik

    Barmutik Гость

    Ну я вообщем-то это и имел ввиду :)
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей