У меня Bitmap лежит в DLL, когда я из dll передаю CBitmap* а в программе делаю
ToolCtrl->AddBitmap(1,pCBitmap);//Добавляю битмап в ImageList контролатулбара
то все работает нормально
Стоит передать HBITMAP как работать наотрез перестает
Вместо битмапа белый квадрат
Вот полный код:
void CDynToolBar::AddButton(CBitmap* pBitmap)
//
//Добавление кнопки в тулбар
//
{
HBITMAP hBMP=(HBITMAP)*pBitmap;
CBitmap BMP;
BMP.Detach();
BMP.Attach(pBitmap->m_hObject);
//BMP.FromHandle(hBMP);
CToolBarCtrl* ToolCtrl=&m_pToolBar->GetToolBarCtrl();//Получаем контрол
int nButCount = ToolCtrl->GetButtonCount();//Определяем количество кнопок
// ToolCtrl->AddBitmap(1, pBitmap);//Подключаем нашу картинку
ToolCtrl->AddBitmap(1,&BMP);
int nImageCount = ToolCtrl->GetImageList()->GetImageCount();//Определяем число картинок в тулбаре
//Создаем новую кнопку
TBBUTTON tb;
tb.iBitmap = nImageCount-1;
tb.idCommand = DTB_IDD_BUTTONS;
tb.fsState = TBSTATE_ENABLED;
tb.fsStyle = TBSTYLE_BUTTON;
tb.dwData = 0;
tb.iString = NULL;
ToolCtrl->InsertButton(nButCount, &tb);
}
Здесь все еще пока передается CBitmap* из DLL а не HBITMAP потому что так легче эксперементировать DLL я пока не переписывал
Пробовал еще делать типа этого:
HBITMAP hBMP=LoadBitmap( hDll, MAKEINTRESOURSE(1001));
Все равно не работает