#include <atlimage.h>
BOOL PaintOpLight(BYTE byStatus)
{
CImage image;
UINT nResID = byStatus == 0 ? IDB_PNG_REDLIGHT : IDB_PNG_BLUELIGHT;
LoadImageFromIDResource(&image, nResID, _T("PNG"));
HBITMAP hBmp = image.Detach();
m_staticOpLight.ModifyStyle(0xF, SS_BITMAP | SS_CENTERIMAGE);
m_staticOpLight.SetBitmap(hBmp);
m_staticOpLight.ShowWindow(true);
CWnd* pWnd = GetDlgItem(IDC_STATIC_OPLIGHT);
CRect rt;
pWnd->GetClientRect(&rt);
InvalidateRect(rt);
return TRUE;
}
BOOL LoadImageFromIDResource(CImage *pImage, UINT nResID, LPCTSTR lpTyp)
{
if (pImage == NULL)
return false;
pImage->Destroy();
HRSRC hRsrc = ::FindResource(AfxGetResourceHandle(), MAKEINTRESOURCE(nResID), lpTyp);
if (hRsrc == NULL)
return false;
HGLOBAL hImgData = ::LoadResource(AfxGetResourceHandle(), hRsrc);
if (hImgData == NULL)
{
::FreeResource(hImgData);
return false;
}
LPVOID lpVoid = ::LockResource(hImgData);
LPSTREAM pStream = NULL;
DWORD dwSize = ::SizeofResource(AfxGetResourceHandle(), hRsrc);
HGLOBAL hNew = ::GlobalAlloc(GHND, dwSize);
LPBYTE lpByte = (LPBYTE)::GlobalLock(hNew);
::memcpy(lpByte, lpVoid, dwSize);
::GlobalUnlock(hNew);
HRESULT ht = ::CreateStreamOnHGlobal(hNew, TRUE, &pStream);
if (ht != S_OK)
{
GlobalFree(hNew);
}
else
{
pImage->Load(pStream);
GlobalFree(hNew);
}
::FreeResource(hImgData);
return true;
}
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP_TOP_LOGO_ELSE);
CStatic* pWnd = (CStatic*)GetDlgItem(IDC_STATIC_TOP_LOGO);
pWnd->SetBitmap(bitmap);