Re[17]: График
От: Gek Россия  
Дата: 16.06.09 13:39
Оценка:
Может быть дело в путях или у меня какая-то другая версия. Например LoadResourceData(HWND hWnd, LPCWSTR uri ) у меня находится в файле wtl_htmlayouthost.h. а в wtl_htmlayout.h есть функция LoadFromResource(LPCWSTR URI) которая закоментирована.
Re[18]: График
От: yarus23  
Дата: 16.06.09 15:00
Оценка:
Здравствуйте, Gek, Вы писали:

Gek>Может быть дело в путях или у меня какая-то другая версия. Например LoadResourceData(HWND hWnd, LPCWSTR uri ) у меня находится в файле wtl_htmlayouthost.h. а в wtl_htmlayout.h есть функция LoadFromResource(LPCWSTR URI) которая закоментирована.


Покажите строку ресурса из rc файла и чем вы грузите сам html. Может быть до LoadResourceData и не доходит.
Re[19]: График
От: Gek Россия  
Дата: 16.06.09 15:26
Оценка:
Здравствуйте, 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;
}
Re[20]: График
От: Gek Россия  
Дата: 16.06.09 15:38
Оценка:
    CString main_tpl = GetHtmlString(IDR_HTML_MAIN);
    SetHtmlString(main_tpl);
Re[21]: График
От: yarus23  
Дата: 16.06.09 18:52
Оценка:
Здравствуйте, 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, там просто много ненужного.
Re[22]: График
От: Gek Россия  
Дата: 17.06.09 14:13
Оценка:
Понял. Спасибо!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.