CHtmlView - поиск по странице
От: dad  
Дата: 03.01.02 08:38
Оценка:
Так и не смог отискать команду инициализирующую диалог поиска по текущей страице в окне броузера.
(ctrl-f) Пробовал даже кидать сообщения окну, но он требует хенл, который я найти не могу.
На сайте тоже не нашел (искал честно :) ) помогите плз.
Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)
Re: CHtmlView - поиск по странице
От: TepMuHyc  
Дата: 03.01.02 12:24
Оценка: 15 (2)
const GUID CGID_IWebBrowser={0xED016940L,0xBD5B,0x11cf,{0xBA,0x4E,0x00,0xC0,0x4F,0xD7,0x08,0x16}}; 
#define HTMLID_FIND        1

IDispatch* pDocDisp = m_wndHtmlView.GetHtmlDocument();
if( pDocDisp ) {
    IOleCommandTarget *pCmdTarg;
    if( SUCCEEDED(pCmdTarg->QueryInterface(IID_IOleCommandTarget, (void**)&pCmdTarg)) )
    {
        pCmdTarg->Exec(&CGID_IWebBrowser, HTMLID_FIND, 0, NULL, NULL);
        pCmdTarg->Release();
    }
    pDocDisp->Release();
}
____________________
God obviously didn't debug, hasn't done any maintenance, and no documentation can be found. Truly amateur work.
Re[2]: CHtmlView - поиск по странице
От: dad  
Дата: 03.01.02 12:34
Оценка:
Здравствуйте TepMuHyc, Вы писали:

TMH>
TMH>        pCmdTarg->Exec(&CGID_IWebBrowser, HTMLID_FIND, 0, NULL, NULL);
TMH>

HTMLID_FIND — вот она командочка. странно а я ее не нашел
Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)
Re[3]: CHtmlView - поиск по странице
От: TepMuHyc  
Дата: 03.01.02 12:54
Оценка:
dad>HTMLID_FIND — вот она командочка. странно а я ее не нашел
И не найдешь... Она ж недокументированная.
Но работает на всех IE начиная с 4.0
____________________
God obviously didn't debug, hasn't done any maintenance, and no documentation can be found. Truly amateur work.
Re[4]: CHtmlView - поиск по странице
От: dad  
Дата: 03.01.02 13:19
Оценка:
TMH>И не найдешь... Она ж недокументированная.
TMH>Но работает на всех IE начиная с 4.0
шутить изволите?
команда с номером один определенная Вами :).
Использовать диспинтерфейс — это конечно красиво, но я вот с трудом понимаю, что вы там делаете и на основе какой докуменннтации.
-------
Если нет прямого вызова с явно указанной командой, значит надо пытаться пойти по простому пути, послать например сообщение окну, но вот беда — хендл моего htmlView не подходит.. а какой тогда?
Веру-ю-у! В авиацию, в научную революци-ю-у, в механизацию сельского хозяйства, в космос и невесомость! Веру-ю-у! Ибо это объективно-о! (Шукшин)
Re[5]: CHtmlView - поиск по странице
От: Ma-Troskin  
Дата: 06.01.02 02:54
Оценка:
Здравствуйте dad, Вы писали:

TMH>>И не найдешь... Она ж недокументированная.

TMH>>Но работает на всех IE начиная с 4.0
dad>шутить изволите?
dad>команда с номером один определенная Вами .
dad>Использовать диспинтерфейс — это конечно красиво, но я вот с трудом понимаю, что вы там делаете и на основе какой докуменннтации.
dad>-------
dad>Если нет прямого вызова с явно указанной командой, значит надо пытаться пойти по простому пути, послать например сообщение окну, но вот беда — хендл моего htmlView не подходит.. а какой тогда?

А вот если посмотреть как CHtmlView/CHtmlCtrl воплощает ати самые "прямые" вызовы, то станет ясно, что и там без диспинтерфейса не обошлось, а иначе и нельзя — Active-X Control все — таки...
Re[4]: CHtmlView - поиск по странице
От: e-yes Россия http://e-yes.nm.ru
Дата: 11.06.02 13:26
Оценка:
Здравствуйте TepMuHyc, Вы писали:

dad>>HTMLID_FIND — вот она командочка. странно а я ее не нашел

TMH>И не найдешь... Она ж недокументированная.
TMH>Но работает на всех IE начиная с 4.0

А не могли бы вы опубликовать еще какие-нибудь tips-n-tricks, очень интересно.
Damn I'm good
Re[5]: CHtmlView - поиск по странице
От: TepMuHyc  
Дата: 11.06.02 13:46
Оценка:
Здравствуйте e-yes, Вы писали:

EY>А не могли бы вы опубликовать еще какие-нибудь tips-n-tricks, очень интересно.

Увы.

Во-первых то что для ты можешь посчитать крутыми "типсами и триксами" для кого-то может быть скучной серостью... И он потом будет удивляться чего это тут TepMuHyc устроил черт-те-что на ровном месте.

Во-вторых, в большинстве своем они описаны в MSDN'е или когда-то обсуждались в группах новостей.
То есть: информация буквально валяется под ногами — бери и пользуйся.

Во-третьих, их такое количество, что хватит на немаленькую книжку. Только вот из меня писатель...

Так что лучше я буду выдавать их по мере надобности
____________________
God obviously didn't debug, hasn't done any maintenance, and no documentation can be found. Truly amateur work.
Re[6]: CHtmlView - поиск по странице
От: e-yes Россия http://e-yes.nm.ru
Дата: 12.06.02 07:11
Оценка:
Здравствуйте TepMuHyc, Вы писали:
TMH>Так что лучше я буду выдавать их по мере надобности :))

Помоги, если сможешь со следующим: при окончании поиска выводится окно сообщений "поиск в документе завершен" в заголовке которого — MS Internet Explorer. Есть ли способ перехватить это ( и вообще перехватить все сообщения ИЕ на экран, он иногда "чудит" что-то типа "Неопознанная ошибка" ).
Damn I'm good
Re[6]: CHtmlView - поиск по странице
От: INT Россия  
Дата: 12.06.02 07:24
Оценка:
TMH>Во-первых то что для ты можешь посчитать крутыми "типсами и триксами" для кого-то может быть скучной серостью... И он потом будет удивляться чего это тут TepMuHyc устроил черт-те-что на ровном месте.

TMH>Во-вторых, в большинстве своем они описаны в MSDN'е или когда-то обсуждались в группах новостей.

TMH>То есть: информация буквально валяется под ногами — бери и пользуйся.

ну поиск по тстранице не описан никак. Я аш обисался :).. Кстати, как я не пробовал задавать параметры в методе
 pCmdTarg->Exec(&CGID_IWebBrowser, HTMLID_FIND, 0, NULL, NULL);

которые у тебя нам NULL, ничего не получилось. Таким образом не получается написать свою настройку к поиску (с историей значений например).. :((
Re[7]: CHtmlView - поиск по странице
От: INT Россия  
Дата: 12.06.02 07:32
Оценка:
патч к тексту:

"обисался" — читать обискался. "как я не пробовал" — читать "как я ни пробовал" :)
и еще — у теббя там ошибка в коде привожу работающий:
#define HTMLID_FIND        1    

    const GUID CGID_IWebBrowser={0xED016940L,0xBD5B,0x11cf,{0xBA,0x4E,0x00,0xC0,0x4F,0xD7,0x08,0x16}}; 



    IDispatch* pDocDisp = m_pDataView->GetHtmlDocument();
    if( pDocDisp ) 
    {
        IOleCommandTarget *pCmdTarg;
        if( SUCCEEDED(pDocDisp->QueryInterface(IID_IOleCommandTarget, (void**)&pCmdTarg)) )
        {
            pCmdTarg->Exec(&CGID_IWebBrowser, HTMLID_FIND,0,NULL, NULL);
            pCmdTarg->Release();        
        }
        pDocDisp->Release();
    };
Re[7]: CHtmlView - поиск по странице
От: TepMuHyc  
Дата: 12.06.02 10:24
Оценка:
Здравствуйте e-yes, Вы писали:

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

TMH>>Так что лучше я буду выдавать их по мере надобности

EY>Помоги, если сможешь со следующим: при окончании поиска выводится окно сообщений "поиск в документе завершен" в заголовке которого — MS Internet Explorer.

EY>Есть ли способ перехватить это ( и вообще перехватить все сообщения ИЕ на экран, он иногда "чудит" что-то типа "Неопознанная ошибка" ).

Способ есть (кстати, большинству он известен). В контейнере что хоcтит твой WebBrowserControl
надо реализовать интерфейс IDocHostShowUI — метод ShowMessage() этого интерфейса как раз данным вопросам и занимается.

В ATL с этим проблем нет так как там все уже реализовано.
А вот в MFC (который идет с VC 6.0) это решается через великую ЖОПУ. Вот здесь это подробно описано Q236312 (это ссылка на MSDN). Там описан интерфейс IDocHostUIHandler, но идея одна и та же.

В MFC который идет с VC.NET (ака 7.0) эти два интерфейса вробе бы реализованы внутрях, но я с ним не работал еще.

ЗЫ. Способ конечно не на четыре строчки. Но увы — такова селяви
____________________
God obviously didn't debug, hasn't done any maintenance, and no documentation can be found. Truly amateur work.
Re[8]: CHtmlView - поиск по странице
От: TepMuHyc  
Дата: 12.06.02 10:35
Оценка:
Здравствуйте INT, Вы писали:

INT>патч к тексту:


INT>"обисался" — читать обискался. "как я не пробовал" — читать "как я ни пробовал"

Вообще-то по-русски правильно пишется "обыскался"
Но ты хреново искал — вот оно где лежит: Q175513 Большинство "хитрых" статей MSDN'а в индексе не фигурирует — их надо искать при помощи закладки "SEARCH"...

INT>и еще — у теббя там ошибка в коде привожу работающий:

Вполне возможно — все кроме CLSID и HTMLID (которые были выдраны из рабочего кода) писалось прямо в окне сообщения...
____________________
God obviously didn't debug, hasn't done any maintenance, and no documentation can be found. Truly amateur work.
Re[9]: CHtmlView - поиск по странице
От: INT Россия  
Дата: 12.06.02 10:41
Оценка:
патч но2
вместо "обискался" читать "обыскался".. :))

TMH>Но ты хреново искал — вот оно где лежит: Q175513 Большинство "хитрых" статей MSDN'а в индексе не фигурирует — их надо искать при помощи закладки "SEARCH"...

Блин! Это как это найти в сёрч? По каким словам?
Ей богу у меня январьский 2002 там такого нет.. :)
Как можно вообще программировать с использованием MFC если они описания функций, которые априори очень нужны так прячут (теряют)
p/s/ это так... вопль возмущения..
Re[10]: CHtmlView - поиск по странице
От: TepMuHyc  
Дата: 12.06.02 12:00
Оценка:
Здравствуйте INT, Вы писали:

INT>Блин! Это как это найти в сёрч? По каким словам?

Вот моя поисковая строка: kbIE* and (kbhowto or kbinfo) and (find dialog)
...Для начала ОЧЕНЬ внимательно почитай статьи Q242971 и Q117552 — а также статью "Finding Information with Full-Text Search" из MSDN Help.

...А также изучи поисковый язык на Google и GoogleGroups — здорово помогает.

INT>Ей богу у меня январьский 2002 там такого нет..

Как ни странно, у меня тоже... но там есть...
____________________
God obviously didn't debug, hasn't done any maintenance, and no documentation can be found. Truly amateur work.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.