Может быть дело в путях или у меня какая-то другая версия. Например LoadResourceData(HWND hWnd, LPCWSTR uri ) у меня находится в файле wtl_htmlayouthost.h. а в wtl_htmlayout.h есть функция LoadFromResource(LPCWSTR URI) которая закоментирована.
Здравствуйте, yarus23, Вы писали:
Y>Здравствуйте, Gek, Вы писали:
Gek>>Может быть дело в путях или у меня какая-то другая версия. Например LoadResourceData(HWND hWnd, LPCWSTR uri ) у меня находится в файле wtl_htmlayouthost.h. а в wtl_htmlayout.h есть функция LoadFromResource(LPCWSTR URI) которая закоментирована.
Y>Покажите строку ресурса из rc файла и чем вы грузите сам html. Может быть до LoadResourceData и не доходит.
IDR_LOGO PNG DISCARDABLE "Images\\logo.png"
bool CWiFixerDlg::GetHtmlResource(LPCTSTR name, PBYTE& pb, DWORD& cb)
{
HRSRC source = ::FindResource(theApp.m_hInstance, name, MAKEINTRESOURCE(RT_HTML));
if(!source) return false;
HGLOBAL resource = ::LoadResource(theApp.m_hInstance, source);
if(!resource) return false;
pb = (PBYTE)::LockResource(resource); if (!pb) return false;
cb = ::SizeofResource(theApp.m_hInstance, source); if (!cb) return false;
return true;
}
CString CWiFixerDlg::GetHtmlString(DWORD id)
{
LPBYTE pb;
DWORD cb;
if (!GetHtmlResource(MAKEINTRESOURCE(id), pb, cb)) return false;
return CString((char *)pb, cb);
}
bool CWiFixerDlg::SetHtmlString(CString buffer)
{
return ::HTMLayoutLoadHtml(m_hWnd, (LPBYTE)(LPCTSTR)buffer, buffer.GetLength()) != 0;
}
CString main_tpl = GetHtmlString(IDR_HTML_MAIN);
SetHtmlString(main_tpl);
Здравствуйте, Gek, Вы писали:
Gek>Gek> CString main_tpl = GetHtmlString(IDR_HTML_MAIN);
Gek> SetHtmlString(main_tpl);
Gek>
И каким же образом htmlayout должно узнать о ваших png файлах?
Сама библиотека о ресурсах или файлах ничего не знает и получает только char * на битмап картинки, в ответ на нотификацию HLN_LOAD_DATA.
Можете грузить все руками и обрабатывать нотификацию HLN_LOAD_DATA, можете воспользоваться готовым обработчиком из файла htmlayout_notifications.hpp, для этого надо ваш класс унаследовать от notification_handler<your_class> и записаться в обработчики htmlayout нотификаций строкой setup_callback в обработчики WM_CREATE. Или аналогично использовать wtl_htmlayouthost.h, там просто много ненужного.
Понял. Спасибо!