Re[4]: HTMLayout и tabs
От: McGor Россия  
Дата: 29.11.07 12:10
Оценка:
Здравствуйте, ShaggyOwl, Вы писали:

SO>По симптомам, есть предположение, что у тебя в программе не подключен behavior tabs (это поведение не встроено в HTMLayout, а подключается пользователем самостоятельно)

SO>После включении файла, во время запуска программы будет создан экземпляр этого behavior и далее, при загрузке html подключен к соответствующему DOM-элементу.

SO>Если интересны детали, посмотри Зверьковские статьи

SO>http://www.terrainformatica.com/wiki/doku.php?id=htmlayout:tutorial-basics-r
SO>http://www.rsdn.ru/forum/message/2240494.1.aspx
Автор: Зверёк Харьковский
Дата: 29.11.06


Спасибо , за направление на путь истинный
Подключил behaviors/behavior_tabs.cpp.
Но всё равно закладки не переключались и содержимое не отоброжаллось ... CHTMLayoutHost::callback -> CHTMLayoutHost::OnHtmlNotify никогда не вызывался, соответственно HLN_ATTACH_BEHAVIOR не обрабатывался.
Проблема была в том что я наследовался от CHTMLayoutHost и event_handler , НО ВМЕСТО public CDialogImpl<CMainDlg, CHTMLayoutCtrl>, было CDialogImpl<CMainDlg> , а CHTMLayoutCtrl был как член класса.

вот код который заработал
.h
class CMainDlg :public CDialogImpl<CMainDlg, CHTMLayoutCtrl>,
public CHTMLayoutHost<CMainDlg>,
public htmlayout::event_handler
{
...
//CHTMLayoutCtrl m_htmlView;
...
}

.cpp
#include <behaviors/behavior_tabs.cpp>
...
LRESULT CMainDlg::OnInitDialog(...)
{
//m_htmlView.CreateLayout(*this, rcClient, NULL, WS_CHILD | ...);
SetCallback();
if(!/*m_htmlView.*/OpenFile(_T("test.htm")))
...
attach_event_handler(dom::element::root_element(/*m_htmlView.*/m_hWnd), this);
...
}

И спс за ссылочки.
McGor
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.