BOOL CWndImage::CreateFromStatic(CWnd * sc) { // _ASSERTE(!::IsWindow(m_hWnd)); // image control already created if (!sc || !::IsWindow(sc->m_hWnd)) return false; CWnd * dlg = sc->GetParent(); if (!dlg || !::IsWindow(dlg->m_hWnd)) return false; CRect r; sc->GetWindowRect(&r); dlg->ScreenToClient(&r); CString s; DWORD style = sc->GetStyle(); DWORD exstyle = sc->GetExStyle(); sc->GetWindowText(s); UINT dlgID = sc->GetDlgCtrlID(); HBITMAP bmp = (HBITMAP) sc->SendMessage(STM_GETIMAGE, IMAGE_BITMAP, 0); if (bmp) sc->SendMessage(STM_SETIMAGE, IMAGE_BITMAP, 0); sc->DestroyWindow(); CreateEx(exstyle, NULL, s, style, r, dlg, dlgID); if (bmp) { SetImg(bmp, false); SetBltMode(bltFitXY); } return true; }
HBITMAP CWndImage::GetBitmap(bool detach) { HBITMAP ret = (HBITMAP) m_bmp.m_hObject; if (detach) { m_shared = true; SetImg((HBITMAP)0); } return ret; }
bool CWndImage::SetImg(LPCTSTR resID, HINSTANCE instance) { if (!instance) instance = AfxGetResourceHandle(); HBITMAP bmp = ::LoadBitmap(instance, resID); SetImg(bmp, false); return bmp != 0; }
EImgBox::EImgBox(KGraphic *imgBox, float margin, float x, float y): EBox(x,y,imgBox->getWidth(),imgBox->getHeight(),margin,margin,margin,margin) { SetImg(imgBox); }
CWndImage::~CWndImage() { SetImg((HBITMAP) 0); }
bool CWndImage::SetImgFile(LPCTSTR fileName) { HBITMAP bmp = (HBITMAP) ::LoadImage(NULL, fileName, IMAGE_BITMAP, 0,0, LR_LOADFROMFILE); SetImg(bmp); return bmp != 0; }
bool CWndImage::SetImg(UINT resID, HINSTANCE instance) { return SetImg(MAKEINTRESOURCE(resID), instance); }
void CWndImage::SetImg(CBitmap * bmp) { SetImg(bmp ? (HBITMAP) (bmp->m_hObject) : 0); }