Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

работа с CHtmlView

324
15 марта 2006 года
AndreySar
532 / / 01.08.2004
В созданном приложении на основе класса CHtmlView открывается некоторая страничка. Yandex, например. Как в поле для поиска этой странички занести какой либо текст?
351
15 марта 2006 года
PitxBull
633 / / 22.12.2004
Цитата:
Originally posted by AndreySar
В созданном приложении на основе класса CHtmlView открывается некоторая страничка. Yandex, например. Как в поле для поиска этой странички занести какой либо текст?


в зависимости от выбранного сайта конкретные решения проблемы могут быть очень разными. Так у этого поля может быть имя ( присвоенное ему в теге HTML ) можно попробовать через это имя присвоить, но этого имени может и не быть.

324
16 марта 2006 года
AndreySar
532 / / 01.08.2004
Цитата:
Originally posted by PitxBull
в зависимости от выбранного сайта конкретные решения проблемы могут быть очень разными. Так у этого поля может быть имя ( присвоенное ему в теге HTML ) можно попробовать через это имя присвоить, но этого имени может и не быть.



Да, я знаю что у каждого элемента может быть, а может и не быть имени. Но мне это нужно для конкретного сайта и имя элемента у него есть. Вся сложность как к ниму обратиться и записать данные.
Пока дошел до этого:

Код:
HRESULT hr;
LPDISPATCH pDispatch = GetHtmlDocument();  

if(pDispatch == NULL )
    return false;
       
IHTMLDocument* pHtmlDoc;
hr = pDispatch->QueryInterface(__uuidof( IHTMLDocument ), (void**)&pHtmlDoc );

if (SUCCEEDED(hr))
{
    IDispatch *dsp;

    HRESULT hr = pHtmlDoc->get_Script(&dsp);
    pHtmlDoc->AddRef();

    if(SUCCEEDED(hr))
    {  
        OLECHAR* szMember = L"text";
    DISPID dispid;

    HRESULT hr = dsp->GetIDsOfNames(IID_NULL, &szMember, 1, LOCALE_SYSTEM_DEFAULT, &dispid);

    if (SUCCEEDED(hr))
    {
            Тут надо записать данные, но как?
    }
    }

pHtmlDoc->Release();
pDispatch->Release();
324
16 марта 2006 года
AndreySar
532 / / 01.08.2004
Цитата:
Originally posted by AndreySar
В созданном приложении на основе класса CHtmlView открывается некоторая страничка. Yandex, например. Как в поле для поиска этой странички занести какой либо текст?



Следующий код заносит в поле для поиска на страничке Yandex текст text:

Код:
HRESULT hr;
LPDISPATCH pDispatch = GetHtmlDocument();  

if(pDispatch == NULL )
    return false;

pDispatch->AddRef();
       
IHTMLDocument3* pHtmlDoc;
hr = pDispatch->QueryInterface(__uuidof( IHTMLDocument3 ), (void**)&pHtmlDoc );

if (SUCCEEDED(hr))
{
    CString str = "text";
    BSTR p  = str.AllocSysString();

    IHTMLElement *el;
           
    pHtmlDoc->getElementById(p, &el);

    if (el != NULL)
    el->put_innerText(p);

    el->Release();
}

pHtmlDoc->Release();    
pDispatch->Release();
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог